首页
学习
活动
专区
圈层
工具
发布

关于PLSQL
EN

Stack Overflow用户
提问于 2017-06-09 10:17:57
回答 3查看 389关注 0票数 0

下面的plsql有什么问题?我正在中运行这段代码。

代码语言:javascript
复制
BEGIN
 FOR x IN (SELECT * FROM dba_tables WHERE owner = 'ABPPMGR_TE2' AND table_name IN
            (select object_name from dba_objects where object_type = 'MATERIALIZED VIEW' and status = 'VALID')
          )
  LOOP
     dbms_stats.gather_table_stats( x.owner, x.table_name); 
  END LOOP;
END;

它给出了错误:

ORA-06550:第2行,第2列:请-00103:遇到符号“”时,需要下列内容之一:(开始case声明退出goto if循环mod空实用化,返回选择update,而使用<<继续关闭当前删除获取锁插入打开的回滚保存点集select for所有合并管道清除符号“”被忽略。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-14 14:40:45

我已经累了,而且对我也很好。我会尽量把截图包括进去。

最好的。

票数 1
EN

Stack Overflow用户

发布于 2017-07-11 17:35:15

我认为你的问题是你的代码上有一个“奇怪”的字符,当你从论坛或网站上拷贝东西时,这是很常见的。

当我运行您的代码时,我发现一些字符类似于一个空格(‘code’),但是没有空格,并且收到了与您得到的相同的错误,您可以运行ASCII函数来检查它。

代码语言:javascript
复制
SELECT ASCII(' ') FROM dual; -- strange character that returns ascii code 160
SELECT ASCII(' ') FROM dual; -- normal space returns 32

只要从代码中删除所有奇怪的字符,它可能会工作。

票数 1
EN

Stack Overflow用户

发布于 2017-09-28 05:25:03

只是尝试使用下面的查询来查看代码中是否有非Ascii字符。

代码语言:javascript
复制
select asciistr('BEGIN
 FOR x  IN
 (SELECT *
 FROM dba_tables
 WHERE owner     = ''ABPPMGR_TE2''
 AND table_name IN
   (SELECT object_name
    FROM dba_objects
   WHERE object_type = ''MATERIALIZED VIEW''
   AND status        = ''VALID''
   )
 )
  LOOP
   dbms_stats.gather_table_stats( x.owner, x.table_name);
 END LOOP;
END') from dual;

没有找到任何非阿西尼字符。代码在我看来是正确的,因为它在我的系统上执行时没有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44455234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档