我目前正在制作一个包以将赠款用作safegaurd,我想制作一个搜索程序,搜索包含名称/值列的行,如下所示:
PROCEDURE "SEARCH"(P_COLUMN IN VARCHAR2(30), P_VALUE IN MYTABLE.{P_COLUMN}%TYPE,
P_REFCUR OUT SYS_REF_CURSER) IS
-- VARIABLES DECLARATION
BEGIN
-- SOME LOGIC FOR VALIDATION
OPEN P_REFCUR FOR
SELECT * FROM MYTABLE WHERE {P_COLUMN} = P_VALUE;
END "SEARCH";
如何在过程的签名中定义P_VALUE
的类型,并创建where子句,其中列(P_COLUMN
)是变量字符串。
答案 0 :(得分:0)
只需将命令放入引号即可。除此之外,你应该使用绑定变量。
OPEN P_REFCUR FOR
'SELECT * FROM MYTABLE WHERE '||P_COLUMN||' = :val' USING P_VALUE;
并删除任何卷曲括号{}
,它们不会在Oracle PL / SQL中使用。