如何在ORACLE里写存储过程?(100分)

  • 主题发起人 主题发起人 1925958231
  • 开始时间 开始时间
1

1925958231

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
如何在ORACLE里写存储过程?要遵守什么规则,如何在DELPHI里调用,那里有这方面
的电子书籍,如能告诉在下感激不已 。
 
每一本oracle和delphi的数据库部分都会有这些内容(可能只是一些基本的应用).
现在不在单位,手头没代码,不然可以贴出来.
 
// 给一个例子给你!
create or replace package PkgTest is
type TCursor is ref cursor;

procedure GetTableRecs(TbName in varchar2, p_Cursor out TCursor);
end PkgTest;
/
create or replace package body PkgTest is
procedure GetTableRecs(TbName in varchar2, p_Cursor out TCursor) is
v_SQL varchar2(1024);
begin
v_SQL := 'select * from ' || TbName;
open p_Cursor for
v_SQL;
end GetTableRecs;
end PkgTest;
/

客户端SQL我只用过DOA的:
var
Tblname: string;
AQuery, P_Cursor: TOracleQuery;
begin
P_Cursor := TOracleQuery.Create(nil);
P_Cursor.Session := Session;
with AQuery do
try
DeclareVariable('TBLNAME', otString);
SetVariable('TBLNAME', Tblname);
DeclareVariable('P_CURSOR', otCursor);
SetComplexVariable('P_CURSOR', P_Cursor);
SQL.Text := 'begin PkgTest.GetTableRecs(:TBLNAME, :P_CURSOR); end;';
Execute;
P_Cursor.Execute; //打开Cursor
except
P_Cursor.Free;
raise;
end;
end;
 

Similar threads

后退
顶部