http://community.csdn.net/Expert/topic/2829/2829396.xml?temp=.8305933
解决方案 »
- 有个自己解决不了的小问题?
- 警報日志的顯示問題
- sql语句
- oracle内存泄漏在oraagent.bin,oracle bug?
- java web war包部署到oracle后找不到页面
- 【请高手指教!】夜维删除多个表小部分(1/10的百万级)记录的案例
- 售票以及加锁的问题,不胜感激
- 出错:ORA-20000: ORU-10028: line length overflow, limit of 255 bytes per line?
- 请教一下sql语句中?(问号)的意思和用法?
- 谁用过PB6.5的ORACLE 7.3连ORACLE8i吗?
- 怎样使用JAVA调用Oracle的存储过程?up有分
- oracle技术网(otn)上下载的例子报错:provider找不到
一、先在 Oracle 建好
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE get(i_test INTEGER,p_rc OUT myrctype);
END pkg_test;
CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get(i_test INTEGER,p_rc OUT myrctype) IS
BEGIN
IF i_test = 0 THEN
OPEN p_rc FOR SELECT SYSDATE FROM dual;
ELSE
OPEN p_rc FOR SELECT * FROM tab;
END IF;
END get;
END pkg_test;二、用 delphi 调用
建一个窗体,拖动控件 AdoConnection1 , ADOStoredProc1 和 Button1.
procedure TForm1.Button1Click(Sender: TObject);
begin
try
with ADOConnection1 do
begin
ConnectionString:=
'Provider=OraOLEDB.Oracle.1;'
+ 'Password=密码;'
+ 'Persist Security Info=True;'
+ 'User ID=用户名;'
+ 'Data Source=数据库名;'
+ 'Extended Properties="PLSQLRSet=1;"';
Open;
end;
except
showMessage('连接不成功');
exit;
end; try
with ADOStoredProc1 do
begin
Connection := ADOConnection1;
Parameters.Clear;
ProcedureName:= 'pkg_test.get';
Parameters.CreateParameter('p1',ftInteger,pdInput,10,1);
Open;
end;
except
showMessage('无法执行过程.');
end;
end;