2012-03-29 2 views
2

오라클의 varchar에서 해시 값을 얻는 함수가 있지만 반환 된 값을보기 위해 쿼리를 실행하면 다음 메시지가 전송됩니다.오라클 해시 문자열

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

그것은 SHA-1 문자열을 반환해야합니다 : 내가 뭘하는지

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

는 다음과 같습니다. 나를 위해 작동

+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 인 경우 7 열은 DBMS_CRYPTO 호출이 시작되고 DBMS_CRYPTO 패키지에 대한 액세스 권한이없는 위치입니다.

+0

UTL_RAW의 경우 '실행하면'utl_raw.cast_to_raw ('Foo')를 이중에서 선택하면 액세스 할 수 있습니다. '라는 값을 반환합니다. DBMS_CRYPTO에 대해서는 확실하지 않지만, ALL_OBJECTS에서 select *를 실행하면 A.OBJECT_TYPE = 'PACKAGE'; 패키지가 나타나서 – BRabbit27

+1

@ BRabbit27에 액세스 할 수 있다고 가정합니다. DBMS_CRYPTO를 호출하면 DBMS_CRYPTO가 '유효하지 않은 식별자'오류의 원인이됩니다. –

+0

DBA와 확인해 보겠습니다. 감사합니다. – BRabbit27

관련 문제