ORACLE 培训教程 3 _pro*c 使用
其中 ind – num 是 dept – number 的指示器变量。当输入的 dept – number 值
是 0 时, 则向 DEPT 表的 DEPTNO 列插入空值。
(3).指针 SQL 变量的说明和使用
指针 SQL 变量在引用前也必须在 DECLARE 部分先说明。其说明格式同 C
语言。在 SQL 语句中引用时,指针名字前要加前缀“:”(冒号)而不加“*”(星
号)。在 C 语句中用法如同 C 语言的指针变量。
(4).数组 SQL 变更的说明和引用
在 SQL 语句中引用数组时,只需写数组名(名字前加冒号), 不需写下
标,在 C 语句中用法如同 C 语言的数组变量。
使用数组可大大降低网络传输开销。如要向一表插入 100 行数据,如果没
有数组,就要重复 100 次, 而引用后,只须执行一次 insert 语句、便可一次性
插入。例如:
EXEC SQL BEGIN DECLARE SECTION;
Int emp_number[100];
Char emp_name[100][15];
Float salary[100],commission[100];
Int dept_number;
EXEC SQL END DECLARE SECTION;
….
EXEC SQL SELECT EMPNO,ENAME,SAL,COMM
INTO :emp_number,:emp_name,:salary,:commission
FROM EMP
WHERE DEPTNO=:dept_number;
在使用数组时,应注意以下几点;
不支持指针数组
只支持一维数组, 而 emp-name [100][15]视为一维字符串
数组最大维数为 32767
在一条 SQL 语句中引用多个数组时,这些数组维数应相同
在 VALUES , SET, INTO 或 WHERE 子名中, 不允许把简单 SQL 变
量与数组 SQL 变量混用
不能在 DELARE 部分初始化数组
例如:下面的引用是非法的
EXEC SQL BEGIN DECLARE SECTION;
Int dept – num [3] = {10,20,30};
EXEC SQL END DECLARE SECTION ;
EXEC SQL SELECT EMPNO, ENAME , SAL
INTO : emp – num [ i ], : emp – name [ i ], : salarg [ i ]
FROM EMP
(5) 伪类型 VARCHAR 的说明和引用
VARCHAR 变量在引用之前也必须在说明段说明, 说明时必须指出串的最大
长度,如:
EXEC SQL BEGIN DECLARE SECTION;
Int book – number;
阿哲 4/16