SQL*PlusでSP-0525

SQL*PlusでOracleDatabaseに接続しようとするとSP-0525が発生。
正しく接続できているようには見えるが、DUALからSELECTしようとしてもことごとく”no rows selected.”になってしまった。

表示されるエラーの全文

SP2-0575: Use of Oracle SQL feature not in SQL92 Entry Level.

なぜこんなことになったか

SqlDeveloperで、DBA権限のあるユーザにおいてあるデータベースから別のデータベースにすべてオブジェクトをコピーした。
(このオブジェクトをコピーした先のデータベースに対して問題が起きている)

解決策

どうやらDUALテーブルが複数あると問題になるようだ。
確認したところ、確かにSYSのDUALとDBA権限でSqlDeveloperで接続したユーザのDUALと2つあった。

SQL> select owner, table_name from dba_tables where table_name = 'DUAL';

OWNER         TABLE_NAME
------------- --------------
SYS            DUAL
DBA_USER       DUAL

そのため、このユーザのDUALをDropした。

以下、参照したサイト。https://anargodjaev.wordpress.com/2016/07/21/sp2-0575-use-of-oracle-sql-feature-not-in-sql92-entry-level/
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28068&forum=26

ちなみに、DropしなくてもDUALをSYS.DUALとすると正しく結果が得られる。

select utl_inaddr.get_host_adress('somehost.somedomain') from sys.dual;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です