Reputation: 1
what i do to run these script ?
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 ;
ERROR at line 8: ORA-06550: line 8, column 13: PLS-00382: expression is of wrong type ORA-06550: line 8, column 3: PL/SQL: Statement ignored
Upvotes: 0
Views: 4040
Reputation: 1891
You have a typo in your PL/SQL. You are using the actual type array_t
rather than the variable array
that you have defined in your DECLARE block:
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;
You actually don't need the variable DBLink
at all but can use the array entry directly:
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;
Upvotes: 2