⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2.c

📁 写一个Proc*程序,执行查询: Select * from scott.emp; 取出emp的字段名和类型
💻 C
📖 第 1 页 / 共 2 页
字号:
sqlstm.sqhstv[0] = (         void  *)&vc_user;
sqlstm.sqhstl[0] = (unsigned int  )22;
sqlstm.sqhsts[0] = (         int  )22;
sqlstm.sqindv[0] = (         void  *)0;
sqlstm.sqinds[0] = (         int  )0;
sqlstm.sqharm[0] = (unsigned int  )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlstm.sqlcmax = (unsigned int )100;
sqlstm.sqlcmin = (unsigned int )2;
sqlstm.sqlcincr = (unsigned int )1;
sqlstm.sqlctimeout = (unsigned int )0;
sqlstm.sqlcnowait = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}

 
/* EXEC SQL DECLARE EMP_CURSOR CURSOR FOR
SELECT COLUMN_NAME,DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME='EMP'; */ 

/* EXEC SQL DECLARE cur_emp CURSOR FOR
	SELECT EMPNO,ENAME,JOB, MGR,TO_CHAR(HIREDATE), SAL,NVL(COMM,0), DEPTNO FROM EMP; */ 

//输出表EMP的字段名和类型
/* EXEC SQL OPEN EMP_CURSOR; */ 

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0003;
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )51;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlstm.sqcmod = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}


/* EXEC SQL FETCH EMP_CURSOR INTO :fieldName, :fieldType; */ 

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )66;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlstm.sqfoff = (           int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = (         void  *)&fieldName;
sqlstm.sqhstl[0] = (unsigned int  )22;
sqlstm.sqhsts[0] = (         int  )0;
sqlstm.sqindv[0] = (         void  *)0;
sqlstm.sqinds[0] = (         int  )0;
sqlstm.sqharm[0] = (unsigned int  )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (         void  *)&fieldType;
sqlstm.sqhstl[1] = (unsigned int  )22;
sqlstm.sqhsts[1] = (         int  )0;
sqlstm.sqindv[1] = (         void  *)0;
sqlstm.sqinds[1] = (         int  )0;
sqlstm.sqharm[1] = (unsigned int  )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}

 
while(sqlca.sqlcode==0) {		fieldName.arr[fieldName.len]='\0';
		fieldType.arr[fieldType.len]='\0';
		printf("%s-%s\n",fieldName.arr,fieldType.arr);		/* EXEC SQL FETCH EMP_CURSOR INTO :fieldName, :fieldType; */ 

{
                                                  struct sqlexd sqlstm;
                                                  sqlstm.sqlvsn = 12;
                                                  sqlstm.arrsiz = 4;
                                                  sqlstm.sqladtp = &sqladt;
                                                  sqlstm.sqltdsp = &sqltds;
                                                  sqlstm.iters = (unsigned int  )1;
                                                  sqlstm.offset = (unsigned int  )89;
                                                  sqlstm.selerr = (unsigned short)1;
                                                  sqlstm.cud = sqlcud0;
                                                  sqlstm.sqlest = (unsigned char  *)&sqlca;
                                                  sqlstm.sqlety = (unsigned short)256;
                                                  sqlstm.occurs = (unsigned int  )0;
                                                  sqlstm.sqfoff = (           int )0;
                                                  sqlstm.sqfmod = (unsigned int )2;
                                                  sqlstm.sqhstv[0] = (         void  *)&fieldName;
                                                  sqlstm.sqhstl[0] = (unsigned int  )22;
                                                  sqlstm.sqhsts[0] = (         int  )0;
                                                  sqlstm.sqindv[0] = (         void  *)0;
                                                  sqlstm.sqinds[0] = (         int  )0;
                                                  sqlstm.sqharm[0] = (unsigned int  )0;
                                                  sqlstm.sqadto[0] = (unsigned short )0;
                                                  sqlstm.sqtdso[0] = (unsigned short )0;
                                                  sqlstm.sqhstv[1] = (         void  *)&fieldType;
                                                  sqlstm.sqhstl[1] = (unsigned int  )22;
                                                  sqlstm.sqhsts[1] = (         int  )0;
                                                  sqlstm.sqindv[1] = (         void  *)0;
                                                  sqlstm.sqinds[1] = (         int  )0;
                                                  sqlstm.sqharm[1] = (unsigned int  )0;
                                                  sqlstm.sqadto[1] = (unsigned short )0;
                                                  sqlstm.sqtdso[1] = (unsigned short )0;
                                                  sqlstm.sqphsv = sqlstm.sqhstv;
                                                  sqlstm.sqphsl = sqlstm.sqhstl;
                                                  sqlstm.sqphss = sqlstm.sqhsts;
                                                  sqlstm.sqpind = sqlstm.sqindv;
                                                  sqlstm.sqpins = sqlstm.sqinds;
                                                  sqlstm.sqparm = sqlstm.sqharm;
                                                  sqlstm.sqparc = sqlstm.sqharc;
                                                  sqlstm.sqpadto = sqlstm.sqadto;
                                                  sqlstm.sqptdso = sqlstm.sqtdso;
                                                  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
                                                  if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}

	}
	/* EXEC SQL CLOSE EMP_CURSOR; */ 

{
 struct sqlexd sqlstm;
 sqlstm.sqlvsn = 12;
 sqlstm.arrsiz = 4;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )112;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)256;
 sqlstm.occurs = (unsigned int  )0;
 sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
 if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}


//输出表的查询结果
/* EXEC SQL OPEN cur_emp; */ 

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0004;
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )127;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlstm.sqcmod = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}

 
while(1) 
{ 
/* EXEC SQL FETCH cur_emp INTO :empno, :ename, :job,:mar,:hiredate,:sal,:comm,:deptno; */ 

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )142;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlstm.sqfoff = (           int )0;
sqlstm.sqfmod = (unsigned int )2;
sqlstm.sqhstv[0] = (         void  *)&empno;
sqlstm.sqhstl[0] = (unsigned int  )sizeof(int);
sqlstm.sqhsts[0] = (         int  )0;
sqlstm.sqindv[0] = (         void  *)0;
sqlstm.sqinds[0] = (         int  )0;
sqlstm.sqharm[0] = (unsigned int  )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = (         void  *)&ename;
sqlstm.sqhstl[1] = (unsigned int  )17;
sqlstm.sqhsts[1] = (         int  )0;
sqlstm.sqindv[1] = (         void  *)0;
sqlstm.sqinds[1] = (         int  )0;
sqlstm.sqharm[1] = (unsigned int  )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = (         void  *)&job;
sqlstm.sqhstl[2] = (unsigned int  )17;
sqlstm.sqhsts[2] = (         int  )0;
sqlstm.sqindv[2] = (         void  *)0;
sqlstm.sqinds[2] = (         int  )0;
sqlstm.sqharm[2] = (unsigned int  )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = (         void  *)&mar;
sqlstm.sqhstl[3] = (unsigned int  )sizeof(int);
sqlstm.sqhsts[3] = (         int  )0;
sqlstm.sqindv[3] = (         void  *)0;
sqlstm.sqinds[3] = (         int  )0;
sqlstm.sqharm[3] = (unsigned int  )0;
sqlstm.sqadto[3] = (unsigned short )0;
sqlstm.sqtdso[3] = (unsigned short )0;
sqlstm.sqhstv[4] = (         void  *)&hiredate;
sqlstm.sqhstl[4] = (unsigned int  )22;
sqlstm.sqhsts[4] = (         int  )0;
sqlstm.sqindv[4] = (         void  *)0;
sqlstm.sqinds[4] = (         int  )0;
sqlstm.sqharm[4] = (unsigned int  )0;
sqlstm.sqadto[4] = (unsigned short )0;
sqlstm.sqtdso[4] = (unsigned short )0;
sqlstm.sqhstv[5] = (         void  *)&sal;
sqlstm.sqhstl[5] = (unsigned int  )sizeof(float);
sqlstm.sqhsts[5] = (         int  )0;
sqlstm.sqindv[5] = (         void  *)0;
sqlstm.sqinds[5] = (         int  )0;
sqlstm.sqharm[5] = (unsigned int  )0;
sqlstm.sqadto[5] = (unsigned short )0;
sqlstm.sqtdso[5] = (unsigned short )0;
sqlstm.sqhstv[6] = (         void  *)&comm;
sqlstm.sqhstl[6] = (unsigned int  )sizeof(float);
sqlstm.sqhsts[6] = (         int  )0;
sqlstm.sqindv[6] = (         void  *)0;
sqlstm.sqinds[6] = (         int  )0;
sqlstm.sqharm[6] = (unsigned int  )0;
sqlstm.sqadto[6] = (unsigned short )0;
sqlstm.sqtdso[6] = (unsigned short )0;
sqlstm.sqhstv[7] = (         void  *)&deptno;
sqlstm.sqhstl[7] = (unsigned int  )sizeof(int);
sqlstm.sqhsts[7] = (         int  )0;
sqlstm.sqindv[7] = (         void  *)0;
sqlstm.sqinds[7] = (         int  )0;
sqlstm.sqharm[7] = (unsigned int  )0;
sqlstm.sqadto[7] = (unsigned short )0;
sqlstm.sqtdso[7] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}


if( sqlca.sqlcode == 1403) 
{ 
break; 
} 
printf("%d %-10s %-10s %5d %-15s %10f %10f %5d\n",empno,ename.arr,job.arr,mar,hiredate.arr,sal,comm,deptno); 
} 
/* EXEC SQL CLOSE cur_emp; */ 

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )189;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}

 
/* EXEC SQL ROLLBACK WORK RELEASE; */ 

{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 8;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int  )1;
sqlstm.offset = (unsigned int  )204;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char  *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int  )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) sql_error("ORACLE ERROR: ");
}

 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -