在PL / SQL中,如何声明包含多个值的变量MyListOfValues(MyValue1,MyValue2等)
SELECT * FROM DatabaseTable WHERE DatabaseTable.Field in MyListOfValues
我正在使用Oracle SQL Developer
解决方法
使用集合:
CREATE TYPE Varchar2TableType AS TABLE OF VARCHAR2(200);
或者使用内置类型,如SYS.ODCIVARCHAR2LIST或SYS.ODCINUMBERLIST:
VARIABLE cursor REFCURSOR; DECLARE your_collection SYS.ODCIVARCHAR2LIST := SYS.ODCIVARCHAR2LIST(); BEGIN your_collection.EXTEND( 100 ); your_collection( 1) := 'Some value'; your_collection( 2) := 'Some other value'; -- ... your_collection(100) := DBMS_RANDOM.STRING( 'x',20 ); OPEN :cursor FOR SELECT t.* FROM your_table t INNER JOIN TABLE( your_collection ) c ON t.id = c.COLUMN_VALUE; END; / PRINT cursor;