2012-03-29 13 views
2

Oracleのvarcharからハッシュ値を取得する関数がありますが、返された値を表示するためにクエリを実行すると、次のメッセージが送信されます。私がやっている何Oracleのハッシュ文字列

ORA-00904: : identificador no válido 
00904. 00000 - "%s: invalid identifier" 
*Cause:  
*Action: 
Error en la línea: 70, columna: 7 

は以下の通りです:

select DBMS_CRYPTO.hash(utl_raw.cast_to_raw('Foo'), 3) FROM dual; 

これは、文字列のSHA-1を返す必要があります。私の作品

+0

実際の回答はhttps://dba.stackexchange.com/q/56658/23369です。 (オラクルでは間違っていますか?) – jpmc26

答えて

3

SQL> select DBMS_CRYPTO.hash(utl_raw.cast_to_raw('Foo'), 3) FROM dual; 

DBMS_CRYPTO.HASH(UTL_RAW.CAST_TO_RAW('FOO'),3) 
-------------------------------------------------------------------------------- 
201A6B3053CC1422D2C3670B62616221D2290929 

あなたはこれを実行しているユーザーが UTL_RAWDBMS_CRYPTOパッケージの両方に EXECUTEのアクセスが許可されていることを確認していますか?あなたのコードの70行目が SELECTのステートメントの場合、 DBMS_CRYPTOコールが開始され、 DBMS_CRYPTOパッケージへのアクセス権がない列7に賭けてもらいたいと思います。

+0

UTL_RAWについては、私が '実行すると 'dualを使用してutl_raw.cast_to_raw(' Foo ')を選択するとアクセスすることができると確信しています。 DBMS_CRYPTOの場合、私は完全にはわかりませんが、 'select * from ALL_OBJECTS A WHERE A.OBJECT_TYPE = 'PACKAGE';を実行すると、パッケージが表示されますので、 – BRabbit27

+1

@ BRabbit27にアクセスすると思います。 DBMS_CRYPTOを呼び出すと、あなたの '無効な識別子'エラーの原因となっているのがDBMS_CRYPTOへの呼び出しであるように見えます。 –

+0

DBAに確認していただき、ありがとうございます! – BRabbit27

関連する問題