创建一个查询的存储过程,由于查询结果需要接收!所以必须创建一个包来承载结果!
CREATE OR REPLACE PROCEDURE
proc_demo(
out_result IN OUT rm_test.my_result_set)
AS
BEGIN
OPEN
out_result
FOR
SELECT id FROM rm.mst_matecode;
END
proc_demo;
里面的包就是rm_test_myresult_set
CREATE OR REPLACE PACKAGE
rm_test IS
type r_id is
record(
v_id varchar2(32)
);
type my_result_set is
ref
cursor
return r_id;
END rm_test;
PB执行该存储过程,或者用这个存储过程创建一个datawindow
//
transaction trans
trans = create transaction
trans.DBMS = "O90 Oracle9i (9.0.1)"
trans.LogPass = "zhhh"
trans.ServerName = "canppe2"
trans.LogId = "system"
trans.AutoCommit = False
trans.DBParm = ""
connect using trans;
If trans.sqlcode <> 0 Then api.alert( "数据库没有正确连接,请检查!" )
DataStore lds_data
lds_data = create Datastore
lds_data.dataobject = "dw_1"
lds_data.settransobject( trans )
lds_data.retrieve()