我有一个返回多个值的select查询。我必须将它存储在一个变量中并在游标创建的where子句中使用它。我的变量的类型应该是什么?
答案 0 :(得分:0)
首先,您应该尽量不存储它,因为将两个查询合并为一个将更容易,更有效。
除此之外,该类型应与您正在阅读的列相同。
答案 1 :(得分:0)
如前所述,您应该将两个查询(CURSOR的查询和作为其WHERE子句的查询)组合到一个查询中。但是,如果必须在将数据传递给CURSOR的WHERE子句之前将数据存储到变量中,则可以按如下方式定义变量:
假设你的源表是TAB_SOURCE,你想从中选择列COL1,COL2和COL3。变量定义是:
V_COL1 TAB_SOURCE.COL1%TYPE;
V_COL2 TAB_SOURCE.COL2%TYPE;
V_COL3 TAB_SOURCE.COL3%TYPE;
这样,您无需在定义变量时显式写入数据类型。 DBMS自动选择源列的数据类型并将其分配给各自的变量。