###前提・実現したいこと
OracleのSELECT INTO 文を用いて、値を取得しようと考えています。
その際、下記SQL文を流すと、次のようなエラーが出ます。
解決方法を伺えればと思います。
以上、よろしくお願い致します。
###発生している問題・エラーメッセージ
v_user_id ora03.user_id%TYPE; * 行2でエラーが発生しました。: ORA-06550: 行2、列20: PLS-00201: 識別子ORA03.USER_ACCOUNT_IDを宣言してください。 ORA-06550: 行2、列20: PL/SQL: Item ignored ORA-06550: 行3、列13: PLS-00201: 識別子ORA03.LOCK_FLGを宣言してください。 ORA-06550: 行3、列13: PL/SQL: Item ignored ORA-06550: 行6、列41: PLS-00320: この式の型の宣言が不完全か、または形式が誤っています。 ORA-06550: 行6、列72: PL/SQL: ORA-00904: : 無効な識別子です。 ORA-06550: 行6、列2: PL/SQL: SQL Statement ignored ORA-06550: 行10、列46: PLS-00320: この式の型の宣言が不完全か、または形式が誤っています。 ORA-06550: 行10、列2: PL/SQL: Statement ignored
###該当のソースコード
SQL> set serveroutput on SQL> declare 2 v_user_id ora03.user_id%TYPE; 3 v_lock_flg ora03.lock_flg%TYPE; 4 v_sql VARCHAR(1000); 5 begin 6 SELECT user_id , lock_flg INTO v_user_id , v_lock_flg FROM account_table WHERE user_id = '10001'; 7 -- v_sql := 'select * from account_table where user_id = ' 8 -- || v_user_id ; 9 10 DBMS_OUTPUT.PUT_LINE('user_id :' || v_user_id || 'lock_flg :' || v_lock_flg); 11 -- execute immediate v_sql; 12 end; 13 /
###試したこと
ユーザーを作成する際、下記SQL文を発行しております。
CREATE USER ora03
IDENTIFIED BY "●●●●●"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
GRANT DBA TO ora03 ;
GRANT UNLIMITED TABLESPACE TO ora03 ;
今回エラーが出た際、権限が不足している可能性を考慮し、
以下の権限を付与したのですが、同じエラーが生じます。
grant CONNECT
,RESOURCE
,DBA
,EXP_FULL_DATABASE
,IMP_FULL_DATABASE
,DELETE_CATALOG_ROLE
,EXECUTE_CATALOG_ROLE
,SELECT_CATALOG_ROLE
to ora03
;
###補足情報(言語/FW/ツール等のバージョンなど)
Oracle Database Express Edition 11g Release 2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/05 14:52