在ORACLE中,LONG類型不能直接作為條件進行查詢,在翻閱資料后,找到一個函數,親測有效,希望能幫到各位!
函數
CREATE OR REPLACE FUNCTION SSCP.LONG_TO_CHAR(in_rowid rowid,
in_owner varchar,
in_table_name varchar,
in_column varchar2)
RETURN varchar AS
text_c1 varchar2(32767);
sql_cur varchar2(2000);
--set serveroutput on size 10000000000;--
begin
DBMS_OUTPUT.ENABLE(buffer_size => null);
sql_cur := 'select ' || in_column || ' from ' || in_owner || '.' ||
in_table_name || ' where rowid = ' || chr(39) || in_rowid ||
chr(39);
dbms_output.put_line(sql_cur);
execute immediate sql_cur
into text_c1;
text_c1 := substr(text_c1, 1, 4000);
RETURN TEXT_C1;
END;
調用方式
SSCP.LONG_TO_CHAR(ROWID,用戶,'表名',‘字段')
建議:建表時最好不要選擇LONG類型