Java 如何使用JDBC创建SQL函数?
我想用JDBC创建SQL函数Java 如何使用JDBC创建SQL函数?,java,sql,oracle,jdbc,Java,Sql,Oracle,Jdbc,我想用JDBC创建SQL函数 CREATE OR REPLACE FUNCTION TEST."TO_STRING"( nt_in in ntt_varchar2, delimiter_in IN VARCHAR2 DEFAULT ',') return varchar2 is v_idx PLS_INTEGER; v_str varchar2(32767); v_dlm VARCHAR2(10); v_length NUMBER; v_max_size NUMBER; begin v_d
CREATE OR REPLACE FUNCTION TEST."TO_STRING"(
nt_in in ntt_varchar2,
delimiter_in IN VARCHAR2 DEFAULT ',')
return varchar2 is
v_idx PLS_INTEGER;
v_str varchar2(32767);
v_dlm VARCHAR2(10);
v_length NUMBER;
v_max_size NUMBER;
begin
v_dlm := delimiter_in;
v_idx := nt_in.FIRST;
v_max_size :=2000;
WHILE v_idx IS NOT NULL LOOP
IF (nvl(length(v_str),0) + length(v_dlm) + length(nt_in(v_idx))) > v_max_size THEN
if v_str is null then
v_str := substr(nt_in(v_idx), 0, v_max_size);
else
v_str := v_str || v_dlm || substr(nt_in(v_idx), 0, v_max_size - length(v_str) - length(v_dlm));
end if;
EXIT;
END IF;
IF (v_str is not null and length(v_str) > 0) THEN
v_str := v_str || v_dlm || nt_in(v_idx);
ELSE
v_str := nt_in(v_idx);
END IF;
v_idx := nt_in.NEXT(v_idx);
END LOOP;
RETURN v_str;
end to_string
,但获取ORA-00900:无效的SQL语句
可以用JDBC创建SQL函数吗?
我使用Oracle Database 11g 11.1.0.0.0版这有什么问题
String sql = "CREATE OR REPLACE FUNCTION TEST.\"TO_STRING\"(......";
connection.createStatement().execute(sql);
当然,您的SQL必须仍然正确。实际上,您在最后一行缺少分号:
end to_string;
您可以通过不同的界面添加所示的功能吗?这个问题是特定于jdbc还是您的函数的?通过Toad,我运行这段代码没有问题。这个函数可以运行