我做了什么来运行这些脚本?
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:忽略语句
发布于 2015-01-20 04:18:43
您的PL/SQL中有一个错误。您使用的是实际类型的array_t
,而不是您在声明块中定义的变量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;
https://stackoverflow.com/questions/28045055
复制相似问题