天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。
数据库SQL语言之嵌入式SQL(五.2)
上一篇 /
下一篇 2013-01-09 16:55:21
/ 精华(1)
/ 置顶(1)
/ 个人分类:Oracle数据库
我戴着一个300块的手表,早上忘记带钱包。
起床发现快要迟到了,简单洗漱后就出门了,路口买了两个包子。
发现钱包没带,包子已经吃了一口,不能退货。
情急尴尬之时,我跟老板说:“我把手表放你着,我回家拿钱来给你,我的手表值好几千呢……”
5分钟后回到事发地点,只剩下我一人在冷清的十字路口凌乱了。
4、 嵌入式SQL DML语句的使用技术
a) 定义:SQL DDL语句只要加上前缀EXEC SQL和后缀END_EXEC就可以再主语言中使用,而SQL DML语句在嵌入使用时,要注意是否使用了游标机制。
b) 不涉及游标的SQL DML语句:
i. 由于insert、delete、update语句不返回数据结果,只是对数据库进行操作,因此只要加上前缀标识和后缀标识就能嵌入在主语言中使用;
ii. 对于Select语句,如果已知查询结果肯定是单元组时,在加上前缀和后缀也可直接在主语言程序中使用,此时select语句中要增加into子句,指出找到的值应送到相应的共享变量里。
EXEC SQL
select <列名> into <共享变量> from <基本表名> where<条件表达式>
END_EXEC
c) 涉及游标的SQL DML语句
i. 当select语句查询结果是多个元组时,主语言程序无法使用,一定要用游标机制把多个元组一次一个地传送给主语言程序处理
ii. 游标的处理过程
1. 先用declare游标定义语句定义一个游标与某个select语句对应
2. 游标用open语句打开后,处于活动状态,此时游标指向查询结果第一个元组之前;
3. 每执行一次fetch语句,游标指向下一个元组,并把其值送到共享变量,供程序处理
4. 最后用close语句关闭游标,关闭的游标可以重新打开,与新的查询结果相联系,但在没打开之前,不能使用
5、 飞嵌入式SQL动态技术
a) 定义:前面提到的嵌入式SQL语句都必须在源程序中完全确定,然后再由预处理程序预处理和主语言编译程序编译,在实际过程中,用户对数据库的操作有时在系统运行时才能提出来,这就是嵌入式动态SQL技术,主要分两类:
b) 动态SQL语句的分类:
i. 动态SQL预备语句:
EXEC SQL
PREPARE <动态SQL语句名> FROM<共享变量或字符串>;
ii. 动态SQL执行语句
EXEC SQL
EXECUTE<动态SQL语句>;
c) 动态SQL语句的改进点:
i. 当预备语句中组合而成的SQL语句只需执行一次时,那么预备语句和执行语句可合并成一个语句
EXEC SQL
EXECUTE IMMEDIATE<共享变量或字符串>
ii. 当预备语句中组合而成的SQL语句的条件值尚缺时,可以再执行语句中用USING短语补上
EXEC SQL
EXECUTE <动态SQL语句名> USING<共享变量>
零测试
收藏
举报
TAG:
零测试
嵌入式SQL
dcl
DCL
DML
dml
动态SQL