天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。

数据库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.             由于insertdeleteupdate语句不返回数据结果,只是对数据库进行操作,因此只要加上前缀标识和后缀标识就能嵌入在主语言中使用;

                      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

 

评分:0

我来说两句

Open Toolbar