首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PLS-00382:表达式类型错误,忽略PL/SQL:语句

PLS-00382:表达式类型错误,忽略PL/SQL:语句
EN

Stack Overflow用户
提问于 2015-01-20 04:09:33
回答 1查看 3.6K关注 0票数 0

我做了什么来运行这些脚本?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:忽略语句

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-20 04:18:43

您的PL/SQL中有一个错误。您使用的是实际类型的array_t,而不是您在声明块中定义的变量array

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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,但是可以直接使用数组条目:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28045055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文