小编Bur*_*tar的帖子

PL/SQL ORA-06550中的"本地集合类型不允许"错误

我正在尝试从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)

sql oracle plsql ora-06550

14
推荐指数
2
解决办法
3万
查看次数

标签 统计

ora-06550 ×1

oracle ×1

plsql ×1

sql ×1