【发布时间】:2014-11-06 14:36:29
【问题描述】:
我有一个名为 QUERIES_DICTIONNARY 的表,它有 2 列(ID、SQL_QUERY),第一列是 NUMBER,第二列是 Varchar,表示 SQL 查询。
CREATE TABLE "QUERIES_DICTIONNARY"
(
"ID" NUMBER(10,0) NOT NULL ENABLE,
"SQL_QUERY" NVARCHAR2(2000) NOT NULL ENABLE
)
我想创建一个带有 2 个参数(P_KEY、P_RESULTS_CURSOR)的存储过程,其中 P_KEY 是我的表的 ID,而 P_RESULT_CURSOR 是我对 ID = P_KEY 的记录执行 SQL 查询的地方。
CREATE OR REPLACE PROCEDURE GET_STATISTICS_RESULTS
(
P_KEY IN NUMBER,
P_RESULTS_CURSOR OUT SYS_REFCURSOR
)
在我的存储过程中,我得到了 ID = P_KEY 的记录 一旦我有了记录,我想使用 EXECUTE IMMEDIATE 在 P_RESULTS_CURSOR 中执行相关查询。
CREATE OR REPLACE PROCEDURE GET_STATISTICS_RESULTS
(
P_KEY IN NUMBER
P_RESULTS_CURSOR OUT SYS_REFCURSOR
) AS
BEGIN
---- Get the record
-- SELECT SQL_QUERY FROM QUERIES_DICTIONNARY WHERE ID = P_KEY;
---- Then Execute the query
-- OPEN P_RESULTS_CURSOR FOR ?
END GET_STATISTICS_RESULTS;
请问如何在一个存储过程中执行此方法?
【问题讨论】:
标签: sql oracle stored-procedures cursor