欢迎光临
我们一直在努力

ORA-00923: FROM keyword not found where expected

今天偶然查询Oracle隐含参数,想在从网上找到大神写的语句中加一个描述参数作用的列,发生ORA-00923,做个记录

SYS@honor1 > select
  2  x.ksppinm  name,
  3  y.ksppstvl  value,
  4  y.ksppstdf  isdefault,
  5  x.ksppdesc desc,
  6  decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE')  ismod,
  7  decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE')  isadj
  8  from
  9  sys.x$ksppi x,
 10  sys.x$ksppcv y
 11  where
 12  x.inst_id = userenv('Instance') and
 13  y.inst_id = userenv('Instance') and
 14  x.indx = y.indx and x.ksppinm like '%&parameter%'
 15  order by
 16  translate(x.ksppinm, ' _', ' ')
 17  /
Enter value for parameter: policy
old  14: x.indx = y.indx and x.ksppinm like '%&parameter%'
new  14: x.indx = y.indx and x.ksppinm like '%policy%'
x.ksppdesc desc,
           *
ERROR at line 5:
ORA-00923: FROM keyword not found where expected

经过仔细比对,该问题由于第五行,使用了系统保留关键字desc导致,改为describe,问题解决。

另外,对上述查询中ISMOD、ISADJ经过研究含义如下:

ISMODIFIED VARCHAR2(10) 
    Indicates whether the parameter has been modified after instance
    startup:
    • MODIFIED - Parameter has been modified with ALTER SESSION
    • SYSTEM_MOD - Parameter has been modified with ALTER
        SYSTEM (which causes all the currently logged in sessions'
        values to be modified)
    • FALSE - Parameter has not been modified after instance startup
    
ISADJUSTED VARCHAR2(5) 
    Indicates whether Oracle adjusted the input value to a more
    suitable value (for example, the parameter value should be prime,
    but the user input a non-prime number, so Oracle adjusted the
    value to the next prime number)
赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。