Oracle 函数Blob_to_Clob,将数字转成日期,将字符串转换成数字

CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB)
RETURN CLOB
AS
     v_clob    CLOB;
     v_varchar VARCHAR2(32767);
     v_start      PLS_INTEGER := 1;
     v_buffer  PLS_INTEGER := 32767;
BEGIN
     DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);

     FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
     LOOP

        v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));

           DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);

          v_start := v_start + v_buffer;
     END LOOP;

   RETURN v_clob;

END blob_to_clob;
/

CREATE OR REPLACE FUNCTION IS_DATE(PARAMETER VARCHAR2) RETURN DATE IS
  VAL DATE;
BEGIN
  IF PARAMETER IS NULL
  THEN
    RETURN NULL;
  ELSE
    BEGIN
      VAL := TO_DATE(NVL(PARAMETER,
                         'a'),
                     'yyyy-mm-dd hh24:mi:ss');
      RETURN VAL;
    EXCEPTION
      WHEN OTHERS THEN
        RETURN NULL;
    END;
  END IF;
END;
/
create or replace function ISNUMBER(p in varchar2)
return number
is
test number;
begin
test := to_number(p);
return test;
exception
when VALUE_ERROR then return 0;
end;
/

你可能感兴趣的:(Oracle,函数,数据库)