Sql = "CREATE OR REPLACE FUNCTION GETCLOBW " & _
"( " & Chr(13) & _
"table_name in varchar2, " & Chr(13) & _
"P_where in varchar2, " & Chr(13) & _
"field_name in varchar2, " & Chr(13) & _
"v_pos in number) return varchar2 " & Chr(13) & _
"is " & Chr(13) & _
"lobloc clob; " & Chr(13) & _
"buffer varchar2(32767); " & Chr(13) & _
"amount number := 2000; " & Chr(13) & _
"offset number := 1; " & Chr(13) & _
"query_str varchar2(100); " & Chr(13) & _
"begin " & Chr(13) & _
"query_str :='select '|| field_name ||' from '|| table_name ||' :wh'; " & Chr(13) & _
"--initialize buffer with data to be found " & Chr(13) & _
"EXECUTE IMMEDIATE query_str INTO lobloc USING P_where; " & Chr(13) & _
"offset:=offset+(v_pos-1)*2000; " & Chr(13) & _
"dbms_lob.read(lobloc,amount,offset,buffer); " & Chr(13) & _
"return buffer; " & Chr(13) & _
"exception " & Chr(13) & _
"when others then " & Chr(13) & _
" Return '系统提示——暂无数据'; " & Chr(13) & _
"end;"
"( " & Chr(13) & _
"table_name in varchar2, " & Chr(13) & _
"P_where in varchar2, " & Chr(13) & _
"field_name in varchar2, " & Chr(13) & _
"v_pos in number) return varchar2 " & Chr(13) & _
"is " & Chr(13) & _
"lobloc clob; " & Chr(13) & _
"buffer varchar2(32767); " & Chr(13) & _
"amount number := 2000; " & Chr(13) & _
"offset number := 1; " & Chr(13) & _
"query_str varchar2(100); " & Chr(13) & _
"begin " & Chr(13) & _
"query_str :='select '|| field_name ||' from '|| table_name ||' :wh'; " & Chr(13) & _
"--initialize buffer with data to be found " & Chr(13) & _
"EXECUTE IMMEDIATE query_str INTO lobloc USING P_where; " & Chr(13) & _
"offset:=offset+(v_pos-1)*2000; " & Chr(13) & _
"dbms_lob.read(lobloc,amount,offset,buffer); " & Chr(13) & _
"return buffer; " & Chr(13) & _
"exception " & Chr(13) & _
"when others then " & Chr(13) & _
" Return '系统提示——暂无数据'; " & Chr(13) & _
"end;"
Set OraSqlStmt = OraDatabase.createSQL(Sql, 0&)
Set OraSqlStmt = Nothing
后,总是显示invalid状态,实际上,我知道以上的脚本应该是没有问题的。
获得sql的表达式,在sql plus中执行,就直接显示valid状态,请问,有哪里有问题啊???