sql >> データベース >  >> RDS >> Oracle

Oracle STANDARD_HASHはPLSQLでは使用できませんか?

    12cではまだPL/SQLの一部ではないようです 。

    回避策として、SELECT INTOを使用します PL / SQL

    SQL> set serveroutput on
    SQL> DECLARE
      2    str VARCHAR2(40);
      3  BEGIN
      4    SELECT STANDARD_HASH('test') INTO str FROM dual;
      5    dbms_output.put_line(str);
      6  END;
      7  /
    A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
    
    PL/SQL procedure successfully completed.
    
    SQL>
    

    関数を作成することをお勧めします 、 PL / SQLで必要なときにいつでも使用できます 。

    たとえば、

    SQL> CREATE OR REPLACE FUNCTION STANDARD_HASH_OUTPUT(str IN VARCHAR2)
      2    RETURN VARCHAR2
      3  AS
      4    op VARCHAR2(40);
      5  BEGIN
      6    SELECT STANDARD_HASH(str) INTO op FROM dual;
      7    RETURN op;
      8  END;
      9  /
    
    Function created.
    

    関数を呼び出す PL/SQLブロックに直接 :

    SQL> BEGIN
      2     dbms_output.put_line(STANDARD_HASH_OUTPUT('test'));
      3  END;
      4  /
    A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
    
    PL/SQL procedure successfully completed.
    
    SQL>
    


    1. Oracle:2つのインデックスを使用する

    2. MySQLの行を実際の行の内容とともにカウントします

    3. OracleのNVL2機能

    4. 行ランクを取得する方法は?