PLS-00382: 表达式类型错误,PL/SQL: 语句被忽略
PLS-00382: expression is of wrong type ,PL/SQL: Statement ignored
我对这些脚本做了什么 运行?
DECLARE
DBlink varchar2(20);
type array_t is varray(2) of varchar2(20);
array array_t := array_t('T', 'RA') ;
BEGIN
FOR i in 1..array.count
LOOP
DBlink := array_t(i) ;
insert into Database_size_2 (DBNAME,date1,Dbsize)values(DBlink,sysdate,11 ) ;
END LOOP ;
END ;
第 8 行错误:
ORA-06550:第 8 行,第 13 列:
PLS-00382: 表达式类型错误
ORA-06550:第 8 行,第 3 列:
PL/SQL: 语句被忽略
您的 PL/SQL 中有错字。您使用的是实际类型 array_t
而不是您在 DECLARE 块中定义的变量 array
:
DECLARE
DBlink varchar2(20);
type array_t is varray(2) of varchar2(20);
array array_t := array_t('T', 'RA') ;
BEGIN
FOR i in 1..array.count
LOOP
DBlink := array(i) ;
insert into Database_size_2 (DBNAME,date1,Dbsize) values (DBlink,sysdate,11 ) ;
END LOOP ;
END;
实际上您根本不需要变量 DBLink
,但可以直接使用数组条目:
DECLARE
type array_t is varray(2) of varchar2(20);
array array_t := array_t('T', 'RA') ;
BEGIN
FOR i in 1..array.count
LOOP
insert into Database_size_2 (DBNAME,date1,Dbsize) values (array(i),sysdate,11 ) ;
END LOOP ;
END;
我对这些脚本做了什么 运行?
DECLARE
DBlink varchar2(20);
type array_t is varray(2) of varchar2(20);
array array_t := array_t('T', 'RA') ;
BEGIN
FOR i in 1..array.count
LOOP
DBlink := array_t(i) ;
insert into Database_size_2 (DBNAME,date1,Dbsize)values(DBlink,sysdate,11 ) ;
END LOOP ;
END ;
第 8 行错误: ORA-06550:第 8 行,第 13 列: PLS-00382: 表达式类型错误 ORA-06550:第 8 行,第 3 列: PL/SQL: 语句被忽略
您的 PL/SQL 中有错字。您使用的是实际类型 array_t
而不是您在 DECLARE 块中定义的变量 array
:
DECLARE
DBlink varchar2(20);
type array_t is varray(2) of varchar2(20);
array array_t := array_t('T', 'RA') ;
BEGIN
FOR i in 1..array.count
LOOP
DBlink := array(i) ;
insert into Database_size_2 (DBNAME,date1,Dbsize) values (DBlink,sysdate,11 ) ;
END LOOP ;
END;
实际上您根本不需要变量 DBLink
,但可以直接使用数组条目:
DECLARE
type array_t is varray(2) of varchar2(20);
array array_t := array_t('T', 'RA') ;
BEGIN
FOR i in 1..array.count
LOOP
insert into Database_size_2 (DBNAME,date1,Dbsize) values (array(i),sysdate,11 ) ;
END LOOP ;
END;