新聞中心
在SQL數(shù)據(jù)庫(kù)中有多種變量,下面就將為您介紹SQL中的指示變量及數(shù)組變量,供您參考,希望對(duì)您學(xué)習(xí)SQL中的變量能夠有所幫助。

成都創(chuàng)新互聯(lián)10多年企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)成都PE包裝袋等多個(gè)方面擁有多年的營(yíng)銷推廣經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
1.指示變量
實(shí)際上也是一類SQL變量,它被用來(lái)管理與其相關(guān)聯(lián)的宿主變量(即在SQL語(yǔ)句中充當(dāng)輸入或輸出的變量)。每一個(gè)宿主變量都可定義一個(gè)指示器變量,主要用于處理空值(NULL)
指示器變量的說(shuō)明基本同一般SQL變量一樣, 但必須定義成2字節(jié)的整型,如SHORT、INT。在SQL語(yǔ)句中引用時(shí),其前也應(yīng)加“:”(冒號(hào)),而且必須附在其相關(guān)聯(lián)的宿主變量之后,在C語(yǔ)句中,可獨(dú)立使用。當(dāng)指示器變量為-1時(shí),表示空值。例如:
EXEC SQL BEGIN DECLARE SECTION ;
INT dept_number;
SHORT ind_num;
CHAR emp_name;
EXEC SQL END DECLARE SECTION ;
Scanf(“90d %s”, & dept- number , dept – name );
If (dept_number ==0)
Ind_num = -1;
Else
Ind_num = 0;
EXEC SQL INSERT INTO DEPT (DEPTNO, DNAME)
VALUES(:dept_number:ind_num , :dept_name);
其中ind – num是dept – number 的指示器變量。當(dāng)輸入的dept_number 值是0時(shí), 則向DEPT 表的DEPTNO列插入空值。#p#
2.數(shù)組SQL變量
在SQL語(yǔ)句中引用數(shù)組時(shí),只需寫數(shù)組名(名字前加冒號(hào)),不需寫下標(biāo),在C語(yǔ)句中用法如同C語(yǔ)言的數(shù)組變量。使用數(shù)組可大大降低網(wǎng)絡(luò)傳輸開(kāi)銷。如要向一表插入100行數(shù)據(jù),如果沒(méi)有數(shù)組,就要重復(fù)100次, 而引用后,只須執(zhí)行一次insert語(yǔ)句、便可一次性插入。例如:
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;
在使用數(shù)組時(shí),應(yīng)注意以下幾點(diǎn);
1)不支持指針數(shù)組
2)只支持一維數(shù)組, 而 emp-name [100][15]視為一維字符串#p#
3)數(shù)組***維數(shù)為32767,超出會(huì)報(bào)“paramter out of range”錯(cuò) 誤
4) 在一條SQL語(yǔ)句中引用多個(gè)數(shù)組時(shí),這些數(shù)組維數(shù)應(yīng)相同
5)在VALUES , SET, INTO 或WHERE子名中, 不允許把簡(jiǎn)單SQL變量與數(shù)組SQL變量混用
6)不能在DELARE部分初始化數(shù)組
例如:下面的引用是非法的
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
7)在UPDATE或DELETE語(yǔ)句中,不允許把數(shù)組與CURRENT OF字句一起使用
標(biāo)題名稱:SQL中的指示變量及數(shù)組變量
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/dghhgch.html


咨詢
建站咨詢
