我正在尝试从oracle表中获取一个名为"sys.all_objects"的查询到一个字符串变量,所以我可以将它作为输入提供给"dbms_obfuscation_toolkit.DESEncrypt",之后加密的字符串将进入"utl_file"所以我可以将其写入txt文件.
这是问题所在,当我尝试使用此代码进行查询时;
DECLARE
TYPE name_array is array(50) OF varchar2(100);
var_input name_array;
BEGIN
SELECT owner
INTO var_input
FROM sys.all_objects;
FOR i IN var_input.FIRST .. var_input.LAST
LOOP
dbms_output.put_line(var_input(i));
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
而错误是;
ORA-06550: line 7, column 12:
PLS-00642: local collection types not allowed in SQL statements
Run Code Online (Sandbox Code Playgroud)
关于解决这个问题的任何想法?
对于想要查看完整代码的人;
CREATE OR REPLACE DIRECTORY data AS 'd:\folder';
GRANT read, write ON DIRECTORY data TO PUBLIC;
DECLARE
var_input varchar2(64) := 'Rndminpt';
var_key varchar2(16) := 'Anahtar1';
var_enc varchar2(1024);
var_dec varchar2(1024);
var_file utl_file.file_type;
BEGIN
-- (query part) …Run Code Online (Sandbox Code Playgroud)