欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据库编程-补充材料-ORACLEproc.ppt

    • 资源ID:91056867       资源大小:280.14KB        全文页数:20页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库编程-补充材料-ORACLEproc.ppt

    说明说明SQL通讯区通讯区 在程序头加上在程序头加上EXEC SQL INCLUDE SQLCA;其中包括许多变量,如返回码等。其中包括许多变量,如返回码等。与与SQL连接语句(连接语句(CONNECT)EXEC SQL CONNECT:用户名变量用户名变量 IDENTIFIED BY :口令变量:口令变量或或 EXEC SQL CONNECT:用户名变量用户名变量/:口令变量:口令变量1伪类型伪类型VARCHAR 只有只有DECLAREDECLARE部分引用,可认为是部分引用,可认为是C C的扩充类的扩充类型。描述如下型。描述如下EXEC SQL BEGIN DECLARE SECTION;VARCHAR job20;EXEC SQL END DECLARE SECTION;等价于:等价于:Struct unsigned/*2bytes*/short int len;unsigned char arr40 job;2在在ORACLE上注册和注销上注册和注销 说明:这是以说明:这是以SCOTT/TIGERSCOTT/TIGER为用户名和口令为用户名和口令登陆进入数据库的登陆进入数据库的PRO*CPRO*C程序例。程序例。#include EXEC SQL BEGIN DECLARE SECTION;VARCHAR uid20;VARCHAR pwd20;EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;3在在ORACLE上注册和注销上注册和注销 Main()strcpy(uid.arr,”SCOTT”);uid.len=strlen(uid.arr);strcpy(pwd.arr,”TIGER”);pwd.len=strlen(pwd.arr);EXEC SQL CONNECT:uid IDENTIFIED BY :pwd Printf(“connect ed to oracle user%sn”,uid.arr);EXEC SQL COMMIT WORK RELEASE;Exit(0);4创建一个表创建一个表#include EXEC SQL BEGIN DECLARE SECTION;VARCHAR uid20;VARCHAR pwd20;EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;Main()strcpy(uid.arr,”SCOTT”);uid.len=strlen(uid.arr);strcpy(pwd.arr,”TIGER”);pwd.len=strlen(pwd.arr);5EXEC SQL CONNECT:uid IDENTIFIED BY :pwd Printf(“connected to oracle as user%sn”,uid.arr);EXEC SQL CREATE TABLE emp(empno number,ename char(15),job char(10),mgr number,hiredate date,sal number,deptno number);Printf(“table emp created!n”);EXEC SQL COMMIT WORK RELEASE;Exit(0);61.EXECUTE IMMEDIATE预编译任何预编译任何SQL语句(除语句(除SELECT)并执行之。)并执行之。SQL语句语句可以是文字量,但它可以不包括任何主变量(既不包括输可以是文字量,但它可以不包括任何主变量(既不包括输入,也不包括输出主变量)入,也不包括输出主变量)EXECUTE IMMEDIATE只能带一个参数,执行一次只能带一个参数,执行一次2.PREPARE 和和EXECUTE语句语句预编译任何预编译任何SQL语句(除语句(除SELECT)并执行之。语句可以)并执行之。语句可以包括输入或输出主变量。它的包括输入或输出主变量。它的SQL语句仅被语法分析一次,语句仅被语法分析一次,可带多个参数,对任何可带多个参数,对任何SQL语句可多次使用,但必须保证语句可多次使用,但必须保证变量的数目和相应的数据类型必须相同。变量的数目和相应的数据类型必须相同。PREPARE完成:完成:预编译(分析)该预编译(分析)该SQL语句,并为其提语句,并为其提供一个语句名。供一个语句名。EXECUTE执行刚预编译的语句,使用执行刚预编译的语句,使用USING提供的值。提供的值。动态动态SQL语句语句四种方式:四种方式:73.PREPARE 和和FETCH语句语句允许使用允许使用SELECT语句语句,语句可以包括输入或输出主语句可以包括输入或输出主变量。这种方式的顺序是变量。这种方式的顺序是PREPARE,DECLEAR,OPEN和和FETCH.变量的数目和相应的数变量的数目和相应的数据类型必须相同。据类型必须相同。4.使用赋值和定义描述符使用赋值和定义描述符允许使用任何允许使用任何SQL语句,包括查询结果为单记录或多语句,包括查询结果为单记录或多记录的记录的SELECT语句。语句。81.EXECUTE IMMEDIATE 立即执行方式立即执行方式 A.A.SQL语句不能是语句不能是SELECT语句,只能是语句,只能是U,D,I语句语句 B.SQL语句不能包含主变量语句不能包含主变量例:例:EXEC SQL BEGIN DECLARE SECTION;VARCHAR dstring80;EXEC SQL END DECLARE SECTION;scanf(“%s”,dstring);EXEC SQL EXECUTE IMMEDIATE :dstring;9EXECUTE IMMEDIATE 实例实例 这是一个提交修改语句的这是一个提交修改语句的pro*cpro*c实例。实例。#include EXEC SQL BEGIN DECLARE SECTION;VARCHAR uid20;VARCHAR pwd20;char select132;EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;Main()char where80;int scode;10strcpy(uid.arr,”SCOTT”);uid.len=strlen(uid.arr);strcpy(pwd.arr,”TIGER”);pwd.len=strlen(pwd.arr);EXEC SQL WHENEVER SQLERROR STOP;EXEC SQL CONNECT:uid IDENTIFIED BY :pwd Printf(“connected to oracle as user%sn”,uid.arr);strcpy(select,”UPDATE EMP SET COMM=100 WHERE”);Printf(“please enter where clause for the following:n”);Printf(“%s”,select);Scode=scanf(“%s”,where);If(scode=EOF|scode=0)11 Printf(“invalid entry!n”);exit(1);Strcat(select,where);EXEC SQL EXECUTE IMMEDIATE:select;Printf(“%d records updated.n”,sqlca.sqlerrd2);EXEC SQL WHENEVER SQLERROR CONTINUE;EXEC SQL COMMIT WORK RELEASE;Exit(0);122.PREPARE 和和EXECUTE语句语句准备执行方式准备执行方式 A.A.SQL语句不能是语句不能是SELECT语句,只能是语句,只能是U,D,I语句语句 B.SQL语句可包含主变量,可多次使用。语句可包含主变量,可多次使用。例:要执行例:要执行delete from emp where empno=:pempnoscanf(“%s”,dstring);EXEC SQL PREPARE s1 FROM :dstring;scanf(“%d”,&pempno);WHILE (pempno!=0)EXEC SQL EXECUTE s1 USING :pempno;scanf(“%d”,&pempno);可以可以USING :VAR1,:VAR2,13PREPARE 和和EXECUTE实例实例 这是一个提交修改语句的这是一个提交修改语句的pro*cpro*c实例。实例。#include EXEC SQL BEGIN DECLARE SECTION;VARCHAR uid20;VARCHAR pwd20;char select132;float comm;EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;Main()char where80;int scode;14strcpy(uid.arr,”SCOTT”);uid.len=strlen(uid.arr);strcpy(pwd.arr,”TIGER”);pwd.len=strlen(pwd.arr);EXEC SQL WHENEVER SQLERROR GOTO errpt;EXEC SQL CONNECT:uid IDENTIFIED BY :pwd Printf(“connected to oracle as user%sn”,uid.arr);strcpy(select,”UPDATE EMP SET COMM=:comm WHERE”);Printf(“please enter where clause for the following:n”);Printf(“%s”,select);Scode=scanf(“%s”,where);If(scode=EOF|scode=0)15 Printf(“invalid entry!n”);exit(1);Strcat(select,where);EXEC SQL PREPARE S1 FROM:select;Printf(“please enter commission:”);Scanf(“%f”,&comm);EXEC SQL EXECUTE S1 USING:comm;Printf(“n%d records updated.n”,sqlca.sqlerrd2);EXEC SQL WHENEVER SQLERROR CONTINUE;EXEC SQL COMMIT WORK RELEASE;Exit(0);Errpt:printf(“n%sn”,sqlca.sqlerrmc);EXEC SQL ROLLBACK WORK RELEASE;Exit(1);163.PREPARE 和和FETCH语句,语句,针对针对SELECT语句语句引用方式用以下五步:引用方式用以下五步:A.A.PREPARE FROM B.DECLARE FOR C.OPEN USING:变量名变量名1,:变量名变量名2,D.FETCH INTO:变量名变量名1,:变量名变量名2,E.CLOSE 17PREPARE 和和EXECUTE实例实例 这是一个在查询中使用这是一个在查询中使用WHEREWHERE语句的语句的pro*cpro*c实例。实例。#include EXEC SQL BEGIN DECLARE SECTION;VARCHAR uid20;VARCHAR pwd20;char select132;float sal;int depno;char ename10EXEC SQL END DECLARE SECTION;EXEC SQL INCLUDE SQLCA;Main()char where80;int scode;int i;strcpy(uid.arr,”SCOTT”);uid.len=strlen(uid.arr);strcpy(pwd.arr,”TIGER”);pwd.len=strlen(pwd.arr);18EXEC SQL WHENEVER SQLERROR GOTO errpt;EXEC SQL CONNECT:uid IDENTIFIED BY :pwd Printf(“connected to oracle as user%sn”,uid.arr);strcpy(select,”select ename,sal from EMP”);Printf(“please enter where clause for the following:n”);Printf(“%s”,select);Scode=scanf(“%s”,where);If(scode=EOF|scode=0)Printf(“invalid entry!n”);exit(1);Strcat(select,where);EXEC SQL PREPARE S1 FROM:select;19EXEC SQL DECLARE C1 CURSOR FOR S1;EXEC SQL OPEN C1;EXEC SQL WHENEVER NOT FOUND GOTO endloop;For(i=1;i+)EXEC SQL FETCH C1 INTO:ename,:sal;Printf(“%s%fn”,ename,sal);Endloop:printf(”n%d records selected.n”,i);EXEC SQL WHENEVER SQLERROR CONTINUE;EXEC SQL COMMIT WORK RELEASE;Exit(0);Errpt:printf(“n%sn”,sqlca.sqlerrmc);EXEC SQL ROLLBACK WORK RELEASE;Exit(1);20

    注意事项

    本文(数据库编程-补充材料-ORACLEproc.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开