ORA-00923: FROM keyword not found where expected

你好我是李白發表於2020-01-10

今天偶然查詢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)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2672931/,如需轉載,請註明出處,否則將追究法律責任。

相關文章