proc*c 程序設計(二) 指示變量

指示變量:
 與宿主變量相關聯,用於監督和管理相關聯的宿主變量。每一個宿主變量可以定義一個指示變量。
作用:
 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值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章