oracle中怎样执行这个sql,或者怎样调用

shili150 2009-01-14 09:53:33
DECLARE
iv_user_id NUMBER(16):= TO_NUMBER(:USER_ID);
BEGIN
:CODE := -1;
:INFO := 'TRADE OK!';
FOR i IN (SELECT trade_id FROM tf_b_trade WHERE exec_time>SYSDATE AND user_id=iv_user_id AND trade_type_code IN (110,111)) LOOP
UPDATE tf_b_trade_svc
SET modify_tag='4'
WHERE trade_id=i.trade_id
AND service_id BETWEEN 13 AND 19;
END LOOP;
:CODE := 0;
END;


这是一个存储过程还是什么?程序结构
...全文
103 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
酒剑仙 2009-01-14
  • 打赏
  • 举报
回复
这是个存储过程

这个东西有两个参数 一个是:USER_IDf是个输入参数
一个是:CODE是个输出参数

这是ORCALE的语法。
当然你也可以使用exec 语法去调用。但感觉没有必要。
Alien 2009-01-14
  • 打赏
  • 举报
回复
帮你顶起来
imasmallbird 2009-01-14
  • 打赏
  • 举报
回复
迷糊了,想起来pro*c应该是有
EXEC SQL 这样的语句,这个还不是~~
不知道这断代码是做什么的~~,期待他人~
酒剑仙 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wdz567 的回复:]
:USER_ID这应该是存储过程的外部参数
这个游标在执行一个更新动作。

:CODE 这个参数是传出参数。
这个游标好像忘记关闭了。
[/Quote]
错了不是游标 就是个循环。
酒剑仙 2009-01-14
  • 打赏
  • 举报
回复
:USER_ID这应该是存储过程的外部参数
这个游标在执行一个更新动作。

:CODE 这个参数是传出参数。
这个游标好像忘记关闭了。
flush_520 2009-01-14
  • 打赏
  • 举报
回复
应该是pro*c中的 要不变量前面不会加冒号
ljluck7687 2009-01-14
  • 打赏
  • 举报
回复
好象变量定义不全,如果定义了完整的变量,在isqlplus中应该可以执行
imasmallbird 2009-01-14
  • 打赏
  • 举报
回复
pro*c 说白了就是C与SQL的结合
有本书没记错应该叫《Oracle9i Pro*C/C++编程指南》(可能也有10g的)
当时没买,全是借着看的,现在都忘了,这本书应该是写PRO*C挺全的,
可能网上下不到电子的~~
qindequan 2009-01-14
  • 打赏
  • 举报
回复
这不是SQL也不是存储过程,在oracle中没看见过。
imasmallbird 2009-01-14
  • 打赏
  • 举报
回复
这个应该是在C中用到的吧,是PRO*C
是不能够直接调用的~
shili150 2009-01-14
  • 打赏
  • 举报
回复
有调用这种程序块的方法吗?
Kevin-林 2009-01-14
  • 打赏
  • 举报
回复
pro*c,得进行编译以后才可以执行

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧