Oracle调用Oracle存储过程?

lesstif 2002-07-19 03:51:05
这是我写的存储过程:
/* 添加频道存储过程 */
CREATE OR REPLACE PROCEDURE ADD_CHANNEL(
A_CHANNELNAME IN VARCHAR2,
A_USERID IN NUMBER,
V_RESULT OUT VARCHAR2) IS
T_ID NUMBER(4);
BEGIN
V_RESULT := 'N';

/* 激活数据库事务 */
SET TRANSACTION READ WRITE;

/* 取得新加频道的系统编号 */
SELECT ID INTO T_ID FROM BJTV_DICT_CHANNEL WHERE ROWNUM<2 ORDER BY ID DESC;

/* 添加新频道 */
INSERT INTO BJTV_DICT_CHANNEL(ID, NAME) VALUES(
T_ID+1, A_CHANNELNAME);

/* 写入日志表格 */
INSERT INTO BJTV_LOG(LOGTIME, LOGUSERID, LOGROOTID, LOGMESSAGE) VALUES(
SYSDATE, A_USERID, T_ID+1, '新录入频道,事物提交');

/* 提交事务 */
COMMIT;

V_RESULT := 'Y';
EXCEPTION
WHEN OTHERS THEN BEGIN
/* 回滚事务 */
ROLLBACK;

/* 写失败日志,如不需要插入频道失败日志,注释下面的语句 */
INSERT INTO BJTV_LOG(LOGTIME, LOGUSERID, LOGROOTID, LOGMESSAGE) VALUES(
SYSDATE, A_USERID, -3, '添加频道失败,事物回滚');
COMMIT;

V_RESULT := 'N';
END;
END ADD_CHANNEL;
/

可否给出一个调用的简单例子,谢谢
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lesstif 2002-07-22
  • 打赏
  • 举报
回复
这样不可以,我试过了,总报错:接口不被支持。呵呵
luoweicaisd 2002-07-19
  • 打赏
  • 举报
回复
Ado调用:
首先用ADOConnection1连上oracle,再用adostoredproc指定存储过程

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOStoredProc1.Close;

ADOStoredProc1.Parameters.ParamByName('').Value :=;
.............
ADOStoredProc1.ExecProc;

end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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