oracle pro命令,利用Pro*C程序接口改进Oracle中Update命令

‘刁月为方便用户使月高级语言开发oracl。应用程序,伪acle提供有高级语言程序接口工具,使用这些工具,用户便可以用高级语言编制包含SQL语言在内的程序,访问oraele数据库的数据,pro,e即为。-racle与c语言的程序接口.在oracle中u冈ate命令的功能是用来改变指定“表”的字段值,它的一般调用格式如下:U冈ateTableSetCofumn=ExprWhereCondition其中:Table为表名,culumn为表中列名,cond卜uon为条件,公p;为表达式或值。即把Table表的column列满足条件condition的字段值修改成ExDr,但ExPr中的值必须是唯一的,不能有多值。通过对oracle的使用,作者发现Update在otacle中对表的一些简单修改很容易实现,但对某些情行的修改,则比较麻烦,甚至不可能达到。如下列情况:这里不仿假设有cHEN、sH两表,它们的结构及内容如下:CHENCHENClCHAR(2)CZCHAR(2)AA‘BBCCDD1O20304051CHAR(2)!52CHAR(2)现在我们想利用sH中的52来修改cHEN中的eZ,使得el=51时,把eZ的值改成52的值。即把cHEN中10改成1,20改成2,30改成3。这个问题如果用一条uPdate命令修改时,屏幕则会提示如下错误:”SINGLE一ROWSUBQUERYRETURNSMORETHANONEROW”因此只能一个个的定位,一个个的修改,有多少个值要修改,就要多少个u冈ate命令。作者利用c语言解决循环问题,与oracle又有接口程序Pr。,C,为便于读者理解,下面先对Pr。二c结构作一说明。Pro,e结构主要由D砚L^RE说明部分、sQLcA语句、数据库连接coNNEcT、应用本体构成。前面三个较简单,下面重点讲应用本体。在应用本体中对于返回一行的查询,只用一个EXEcsQL句子就能实现了.而对于返回多行的查询,则必须使用指针了。在这里利用后一种方法就可以解决上面我们提出的间题,即通过查询sH表,使它的指针从表头开始移位,取出sH中sl、S2值,拿51与eHEN中的ei一个一个的比较,如果el=S一,则把CHEN中相应cZ改成s2,否则CZ不改,然后向下移动sH的指针,这样查一个,改一个,反复循环,直到sH表的指针移到表的尾部,这个思路即为本文的中心思想。使用指针时要用到如下四条语句:指针说明语句ExECSQLDEcLARE指针名euRSoRFORsBLECT列名FROM表名wHERE条件;打开指针语句ExEcsQLOPEN指针名;取指针语句ExEcsQLFETcH指针名INTO:输出主变量;其中:输出主变量为OECLARE说明节中定义的_变量。关闭指针语句ExEcSQLCLoSE指针名;程序清单如下‘/,程序名:CS。PC注意:用Pro,c预编译cs,Micr留oftc编译、连接cs.然后运行由.方法如下:C》PCCiname=cs.PChost=cC》el一AL一ecs.eC)hakcs,,,sqlmse/se:512/staek:10000/nlap;C》货,/#include(stdio.h)EXECSQLBEGINDECLARESECTION犷vARcHARuid[10,/.用户名,/vARcHARpwd[10];/,用户口令,/v^ReH从xl[幻,xZ[2;EXECSQLENDDECLARESECTION;EXECSQLrNCLUDESQLCA邵互,几,曰内JSABCDABCDmain()1/‘’‘’-用户以名为sck

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值