SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
When the entry in the dual dummy table has been deleted, you will get
the SP2-0575 error. To fix it, just insert the 'x' value into the dual table and don't forget to commit it.
1。一種可能是你的虛表出問題了。
SQL> select * from dual;
D
-
X
看看你的結果是不是這樣?
2。如果你的結果是空的話,插入一個值
SQL> insert into dual values('x');
the SP2-0575 error. To fix it, just insert the 'x' value into the dual table and don't forget to commit it.
1。一種可能是你的虛表出問題了。
SQL> select * from dual;
D
-
X
看看你的結果是不是這樣?
2。如果你的結果是空的話,插入一個值
SQL> insert into dual values('x');
3。下面是我做的測試:
1)刪除虛表dual的值
SQL> select * from dual;
D
-
X
SQL> delete from dual;
1 row deleted.
SQL> commit;
Commit complete.
SQL> select * from dual;
no rows selected
2)重新連線資料庫,發覺出錯
SQL> disconnect;
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.1.0 - Production
With the Partitioning option
JServer Release 8.1.7.1.0 - Production
SQL> conn system/manager
SP2-0575: Use of Oracle SQL feature not in SQL92 Entry Level.
Connected.
SQL> select * from dual;
no rows selected
3)在虛表中重新插入值
SQL> insert into dual values('x');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from dual;
D
-
x
4)問題解決
SQL> disconnect;
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.1.0 - Production
With the Partitioning option
JServer Release 8.1.7.1.0 - Production
SQL> conn system/manager
Connected.
SQL> select * from dual;
D
-
x
1)刪除虛表dual的值
SQL> select * from dual;
D
-
X
SQL> delete from dual;
1 row deleted.
SQL> commit;
Commit complete.
SQL> select * from dual;
no rows selected
2)重新連線資料庫,發覺出錯
SQL> disconnect;
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.1.0 - Production
With the Partitioning option
JServer Release 8.1.7.1.0 - Production
SQL> conn system/manager
SP2-0575: Use of Oracle SQL feature not in SQL92 Entry Level.
Connected.
SQL> select * from dual;
no rows selected
3)在虛表中重新插入值
SQL> insert into dual values('x');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from dual;
D
-
x
4)問題解決
SQL> disconnect;
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.1.0 - Production
With the Partitioning option
JServer Release 8.1.7.1.0 - Production
SQL> conn system/manager
Connected.
SQL> select * from dual;
D
-
x
上面說了第一種情況是虛表中的行被刪除了,這裡說的第二種情況是使用者自己建立了一個虛表,而表中是空的。
1。一般而言,執行下面的語句會有兩條記錄:
SQL> l
1 Select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED
2 from dba_objects
3* where object_name='DUAL'
SQL> /
OWNER OBJECT_NAM OBJECT_TYPE CREATED
------------------------------ ---------- ------------------ ----------
SYS DUAL TABLE 13-8月 -03
PUBLIC DUAL SYNONYM 13-8月 -03
2。每個使用者用sqlplus連線資料庫的時候,初始化連線會執行一些查詢來返回使用者的配置檔案,其中一些查詢需要用到虛表dual。如上面的情況下,每個使用者使用的都是'SYS.DUAL'的同義詞這個虛表。所以不會出錯。
3。如果使用者自己建立了一個虛表,而且裡面沒有資料話,則但以這個使用者登入的時候會報錯:
SQL> conn kathy/kathy
已連線。
SQL> create table DUAL( dummy varchar2(1));
表已建立。
SQL> select * from dual;
未選定行
SQL> conn system/manager
已連線。
(上面的使用者system由於沒有建立自己的虛表,所以連線的時候還是用的是SYS.DUAL的同義詞,不會出錯)
SQL> conn kathy/kathy
SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
已連線。
(由於使用者kathy建立了自己的虛表,所以連線的時候使用的是自己建立的虛表,而由於虛表是空的,所以連線的時候報錯)
3。這時候發現資料庫中有兩個虛表:
SQL> Select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED
2 from dba_objects
3 where object_name='DUAL';
OWNER OBJECT_NAM OBJECT_TYPE CREATED
------------------------------ ---------- ------------------ ----------
SYS DUAL TABLE 13-8月 -03
PUBLIC DUAL SYNONYM 13-8月 -03
KATHY DUAL TABLE 06-9月 -03
4。這裡我們可以把這個虛表改名或者刪除來解決這個問題。
1)
SQL> conn kathy/kathy
SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
已連線。
SQL> rename dual to dual1;
表已重新命名。
SQL> disconnect;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy;
已連線。
2)這時候把虛表的名字再該回來,就不出錯了。應該是這時候kathy使用者的虛錶連結已經指向SYS.DUAL,不會再指向重新命名的自己的虛表dual了。
SQL> conn kathy/kathy
已連線。
SQL> rename dual1 to dual;
表已重新命名。
SQL> select * from dual;
未選定行
SQL> conn system/manager
已連線。
SQL> Select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED
2 from dba_objects
3 where object_name='DUAL';
OWNER OBJECT_NAM OBJECT_TYPE CREATED
------------------------------ ---------- ------------------ ----------
SYS DUAL TABLE 13-8月 -03
PUBLIC DUAL SYNONYM 13-8月 -03
KATHY DUAL TABLE 06-9月 -03
SQL> disconnect ;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy
已連線。
SQL> select * from dual;
未選定行
5。如果不是刪除虛表dual,而是增加一行,同樣可以解決這個問題。(不過不建議這麼做,因為我不確定在資料庫的其他地方是否會有影響)
SQL> conn kathy/kathy
已連線。
SQL> create table DUAL( dummy varchar2(1));
表已建立。
SQL> select * from dual;
未選定行
SQL> disconnect ;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy
SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
已連線。
SQL> insert into dual values('x');
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from dual;
D
-
x
SQL> disconnect ;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy
已連線。
1。一般而言,執行下面的語句會有兩條記錄:
SQL> l
1 Select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED
2 from dba_objects
3* where object_name='DUAL'
SQL> /
OWNER OBJECT_NAM OBJECT_TYPE CREATED
------------------------------ ---------- ------------------ ----------
SYS DUAL TABLE 13-8月 -03
PUBLIC DUAL SYNONYM 13-8月 -03
2。每個使用者用sqlplus連線資料庫的時候,初始化連線會執行一些查詢來返回使用者的配置檔案,其中一些查詢需要用到虛表dual。如上面的情況下,每個使用者使用的都是'SYS.DUAL'的同義詞這個虛表。所以不會出錯。
3。如果使用者自己建立了一個虛表,而且裡面沒有資料話,則但以這個使用者登入的時候會報錯:
SQL> conn kathy/kathy
已連線。
SQL> create table DUAL( dummy varchar2(1));
表已建立。
SQL> select * from dual;
未選定行
SQL> conn system/manager
已連線。
(上面的使用者system由於沒有建立自己的虛表,所以連線的時候還是用的是SYS.DUAL的同義詞,不會出錯)
SQL> conn kathy/kathy
SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
已連線。
(由於使用者kathy建立了自己的虛表,所以連線的時候使用的是自己建立的虛表,而由於虛表是空的,所以連線的時候報錯)
3。這時候發現資料庫中有兩個虛表:
SQL> Select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED
2 from dba_objects
3 where object_name='DUAL';
OWNER OBJECT_NAM OBJECT_TYPE CREATED
------------------------------ ---------- ------------------ ----------
SYS DUAL TABLE 13-8月 -03
PUBLIC DUAL SYNONYM 13-8月 -03
KATHY DUAL TABLE 06-9月 -03
4。這裡我們可以把這個虛表改名或者刪除來解決這個問題。
1)
SQL> conn kathy/kathy
SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
已連線。
SQL> rename dual to dual1;
表已重新命名。
SQL> disconnect;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy;
已連線。
2)這時候把虛表的名字再該回來,就不出錯了。應該是這時候kathy使用者的虛錶連結已經指向SYS.DUAL,不會再指向重新命名的自己的虛表dual了。
SQL> conn kathy/kathy
已連線。
SQL> rename dual1 to dual;
表已重新命名。
SQL> select * from dual;
未選定行
SQL> conn system/manager
已連線。
SQL> Select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED
2 from dba_objects
3 where object_name='DUAL';
OWNER OBJECT_NAM OBJECT_TYPE CREATED
------------------------------ ---------- ------------------ ----------
SYS DUAL TABLE 13-8月 -03
PUBLIC DUAL SYNONYM 13-8月 -03
KATHY DUAL TABLE 06-9月 -03
SQL> disconnect ;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy
已連線。
SQL> select * from dual;
未選定行
5。如果不是刪除虛表dual,而是增加一行,同樣可以解決這個問題。(不過不建議這麼做,因為我不確定在資料庫的其他地方是否會有影響)
SQL> conn kathy/kathy
已連線。
SQL> create table DUAL( dummy varchar2(1));
表已建立。
SQL> select * from dual;
未選定行
SQL> disconnect ;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy
SP2-0575: Oracle SQL 特徵不位於 SQL92 Entry層。
已連線。
SQL> insert into dual values('x');
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from dual;
D
-
x
SQL> disconnect ;
從Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production中斷開
SQL> conn kathy/kathy
已連線。
已經查明原因,在gg使用者下,dual表不存在了!於是手工建立該表,並按照指示新增一條記錄。問題即刻迎刃而解!建議刪除這個使用者的虛表,都使用SYS.DUAL這個虛表的同義詞。因為oracle不建議一個資料庫中有多個虛表。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-715861/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL92標準四種隔離級別SQL
- 【中亦安圖】SQL優化之基於SQL特徵的改寫(9)SQL優化特徵
- oracle rac的特徵Oracle特徵
- 64位機器上使用PL/SQL Developer 連線不上Oracle的解決辦法SQLDeveloperOracle
- 關於enq: TX - allocate ITL entry等待事件ENQ事件
- RPC、SQL、NFS屬於OSI的哪一層RPCSQLNFS
- 關於oracle18位密碼生成Oracle密碼
- 關於enq: TX - allocate ITL entry的問題分析ENQ
- SQL中欄位比較型別不匹配錯誤:‘cannot be cast to’SQL型別AST
- 基於Oracle的SQL最佳化OracleSQL
- Oracle-不刪表資料,修改欄位型別Oracle型別
- 基於物件特徵的推薦物件特徵
- 關於SQL Server通過OLEDB訪問ORACLE資料表涉及Oracle11g新增欄位的錯誤提示SQLServerOracle
- 關於特徵值和特徵向量的幾何直覺意義特徵
- 基於Oracle的sql最佳化(1)OracleSQL
- Oracle PL/SQL 關於遊標的介紹OracleSQL
- caffe之提取任意層特徵並進行視覺化特徵視覺化
- 記憶體溢位:native溢位 和 上層溢位記憶體溢位
- SQL位運算SQL
- 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(一)特徵工程
- 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(二)特徵工程
- 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(三)特徵工程
- 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(四)特徵工程
- 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(五)特徵工程
- 特徵工程:基於梯度提升的模型的特徵編碼效果測試特徵工程梯度模型
- win7-64位下pl/sql無法連線oracleWin7SQLOracle
- 關於oracle中的sql資料型別OracleSQL資料型別
- ORACLE中用一條SQL實現其它進位制到十進位制的轉換OracleSQL
- 基於BIGINT溢位錯誤的SQL隱碼攻擊SQL
- 關於SQL Server通過OLEDB訪問ORACLE資料表涉及CLOB或BLOB欄位的錯誤提示SQLServerOracle
- CS碩士學位對於自身水平的提升並不香! - ozwrites
- 從一條巨慢SQL看基於Oracle的SQL最佳化SQLOracle
- 關於oracle中blob欄位的錄入問題Oracle
- 轉載-64位SQL Server 2008的Linked Server連線64位的Oracle--Oracle Provider for OLEDBSQLServerOracleIDE
- SQL Server訪問Oracle提示[訊息 9803 資料不適用於型別 "numeric"]問題SQLServerOracle型別
- SQL新增表欄位SQL
- 基於條件熵的特徵選擇熵特徵
- 基於節拍同步的 IF PCP 特徵提取特徵