【发布时间】:2017-10-07 14:54:54
【问题描述】:
我有这张桌子:
| Pattern |
----------------------
|category |varchar|
|patternexpr |varchar|
例如,在此表中,我可以有一个类别 ISBN 及其模式来识别它。
我想创建一个带有三个参数的过程:一个表 T、其中一个列 C 和一个类别。我想打印 T 表中 C 列中尊重相关模式的每一行。
这就是我所做的(更新为正确答案):
CREATE OR REPLACE PROCEDURE Recognize(T varchar,C varchar,catego varchar)
IS
v_patt Pattern.CATEGOR%Type;
BEGIN
SELECT patternexpr INTO v_patt
FROM Pattern WHERE CATEGOR=catego;
FOR myrow IN (SELECT C FROM T WHERE REGEXP_LIKE(C, v_patt) LOOP
dbms_output.put_line(myrow.C);
END LOOP;
END;
/
如何在不知道“DECLARE”位置的变量 patt 的值的情况下声明一个游标来打印我的结果?我应该在第一个查询之后添加另一个声明并开始...结束块吗?最好的方法是什么?
(我正在研究 Oracle SGBD)
【问题讨论】:
标签: sql oracle plsql procedure