指示變量:
與宿主變量相關聯,用於監督和管理相關聯的宿主變量。每一個宿主變量可以定義一個指示變量。
作用:
1.向數據庫表列輸入Null值。
2.檢查數據庫所取值是否爲Null值,或者發生截斷問題。
指示變量值含義:
輸入宿主變量:
-1:oracle把NULL值輸入數據庫表列,不考慮與該指示變量相關的宿主變量。
>=0:把該指示變量相關的宿主變量放入到數據庫表列中
輸出宿主變量:
-1:數據庫表列爲NULL,相關宿主變量值爲不確定。
0:數據庫表列值原封不動賦給相關宿主變量。
>0: 數據庫表列值截斷後賦給相關宿主變量,宿主變量返回該列原始長度 sqlca.sqlcode置爲0。
指示變量的說明:
EXEC SQL BEGIN DECLARE SECTION;
char name[10];
short ind_name; /*name 的指示變量*/
EXEC SQL end DECLARE SECTION;
指示變量的引用:
--------輸出宿主變量:
EXEC SQL SELECT NAME
INTO:name:ind_name
FROM EMPNO
WHERE NAME="somebody"
if(ind_name == -1)
printf("name is null");
增加可讀性 可以加上關鍵字INDICATOR
EXEC SQL SELECT NAME
INTO:name INDICATOR:ind_name
FROM EMPNO
WHERE NAME="somebody"
if(ind_name == -1)
printf("name is null");
-------輸入宿主變量:
if(dep_number == 0)
ind_num = -1;
else
ind_num = 0;
EXEC SQL INSERT INTO DEPT(DEPTNO)
VALUES(:dept_number:ind_num)
ind_num是dept_number的指示變量,當dept_number值爲0時,DEPT表的DEPTNO列插 入NULL值。