在SQL数据库中有多种变量,下面就将为您介绍SQL中的指示变量及数组变量,供您参考,希望对您学习SQL中的变量能够有所帮助。
成都创新互联10多年企业网站建设服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站建设及推广,对成都PE包装袋等多个方面拥有多年的营销推广经验的网站建设公司。
1.指示变量
实际上也是一类SQL变量,它被用来管理与其相关联的宿主变量(即在SQL语句中充当输入或输出的变量)。每一个宿主变量都可定义一个指示器变量,主要用于处理空值(NULL)
指示器变量的说明基本同一般SQL变量一样, 但必须定义成2字节的整型,如SHORT、INT。在SQL语句中引用时,其前也应加“:”(冒号),而且必须附在其相关联的宿主变量之后,在C语句中,可独立使用。当指示器变量为-1时,表示空值。例如:
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 的指示器变量。当输入的dept_number 值是0时, 则向DEPT 表的DEPTNO列插入空值。#p#
2.数组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;
在使用数组时,应注意以下几点;
1)不支持指针数组
2)只支持一维数组, 而 emp-name [100][15]视为一维字符串#p#
3)数组***维数为32767,超出会报“paramter out of range”错 误
4) 在一条SQL语句中引用多个数组时,这些数组维数应相同
5)在VALUES , SET, INTO 或WHERE子名中, 不允许把简单SQL变量与数组SQL变量混用
6)不能在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
7)在UPDATE或DELETE语句中,不允许把数组与CURRENT OF字句一起使用
网站题目:SQL中的指示变量及数组变量
标题来源:http://www.shufengxianlan.com/qtweb/news3/216603.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联