以下のようなpl/sql匿名ブロックがあります
declare
v_count pls_integer := 0;
begin
select count(1) from product_component_version
into v_count
where product like '%Enterprise%';
if v_count = 0 then
raise program_error;
end if;
exception
when program_error then
raise_application_error (-20001, 'This is valid for Oracle Enterprise Edition only!');
end;
上記を実行しようとすると、以下のエラーが発生します
ORA-06550: line 5, column 5:
PL/SQL: ORA-00933: SQL command not properly ended
これは、「into v_count」ステートメントに他なりません。
私の理解によると、構文が間違っており、以下のようにステートメントを変更すると、正常に機能します。
select count(1) into v_count
from product_component_version
where product like '%Enterprise%';
「Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit」でこれをテストしました。
ただし、元のスクリプトは、製品のすべての古いバージョンで利用できます。元のスクリプトの構文が古いバージョンのオラクルでサポートされていることを知りたいですか? または、私の混乱に答えることができるこれに関する情報を教えてください。
ありがとう、ビジェイ