Java 如何使用JdbcTemplate从Spring创建存储函数?

Java 如何使用JdbcTemplate从Spring创建存储函数?,java,oracle,spring-boot,plsql,jdbctemplate,Java,Oracle,Spring Boot,Plsql,Jdbctemplate,出于管理需要,我需要从Spring存储库中创建和替换存储过程。有人已经这样做了吗 我尝试使用以下代码(未完成): 但当我执行它的时候,我把坏掉的包放在数据库中。同时,我从SQLDeveloper运行这个程序时,一切都很完美。您用分号分隔语句和斜杠/。 试着只使用其中一个,但不要同时使用两个。如果这也不起作用,请尝试使用execute()分别执行每个语句。这非常有效: jdbc.execute("create or replace package Z$CLIENT_INTERFAC

出于管理需要,我需要从Spring存储库中创建和替换存储过程。有人已经这样做了吗

我尝试使用以下代码(未完成):


但当我执行它的时候,我把坏掉的包放在数据库中。同时,我从SQLDeveloper运行这个程序时,一切都很完美。

您用分号分隔语句和斜杠
/
。 试着只使用其中一个,但不要同时使用两个。如果这也不起作用,请尝试使用
execute()

分别执行每个语句。这非常有效:

        jdbc.execute("create or replace package Z$CLIENT_INTERFACE_API as \n" +
                "    function CL_ORG_SEARCH_CREATE(p_request in clob) return clob;\n" +
                "end Z$CLIENT_INTERFACE_API;\n");
        jdbc.execute("create or replace package body Z$CLIENT_INTERFACE_API as\n" +
                        "    function CL_ORG_SEARCH_CREATE(p_request in clob) return clob\n" +
                        "    is\n" +
                        "        content_xml VARCHAR2(4000);\n" +
                        "        p Dbms_Xmlparser.Parser;\n" +
                        "        v_Doc Dbms_Xmldom.Domdocument;\n" +
                        "        v_Root_Element Dbms_Xmldom.Domelement;\n" +
                        "        v_Child_Nodes Dbms_Xmldom.Domnodelist;\n" +
                        "        v_Child_Node Dbms_Xmldom.Domnode;\n" +
                        "        v_Message_Id VARCHAR2(36);\n" +
                        "        v_First_Char VARCHAR2(1);\n" +
                        "    begin\n" +
                        "        content_xml:=  CAST(p_request as VARCHAR2);\n" +
                        "        p := Dbms_Xmlparser.Newparser;\n" +
                        "        dbms_xmlparser.setvalidationmode(p,False);\n" +
                        "        dbms_xmlparser.parsebuffer(p,content_xml);\n" +
                        "        v_Doc := dbms_xmlparser.getdocument(p);\n" +
                        "        v_Root_Element := Dbms_Xmldom.getdocumentelement(v_Doc);\n" +
                        "        return 'aaaaaaaaaaaaaaaaaaaaaaaaaa1';\n" +
                        "    end;\n" +
                        "end Z$CLIENT_INTERFACE_API;");
        jdbc.execute("create or replace package Z$CLIENT_INTERFACE_API as \n" +
                "    function CL_ORG_SEARCH_CREATE(p_request in clob) return clob;\n" +
                "end Z$CLIENT_INTERFACE_API;\n");
        jdbc.execute("create or replace package body Z$CLIENT_INTERFACE_API as\n" +
                        "    function CL_ORG_SEARCH_CREATE(p_request in clob) return clob\n" +
                        "    is\n" +
                        "        content_xml VARCHAR2(4000);\n" +
                        "        p Dbms_Xmlparser.Parser;\n" +
                        "        v_Doc Dbms_Xmldom.Domdocument;\n" +
                        "        v_Root_Element Dbms_Xmldom.Domelement;\n" +
                        "        v_Child_Nodes Dbms_Xmldom.Domnodelist;\n" +
                        "        v_Child_Node Dbms_Xmldom.Domnode;\n" +
                        "        v_Message_Id VARCHAR2(36);\n" +
                        "        v_First_Char VARCHAR2(1);\n" +
                        "    begin\n" +
                        "        content_xml:=  CAST(p_request as VARCHAR2);\n" +
                        "        p := Dbms_Xmlparser.Newparser;\n" +
                        "        dbms_xmlparser.setvalidationmode(p,False);\n" +
                        "        dbms_xmlparser.parsebuffer(p,content_xml);\n" +
                        "        v_Doc := dbms_xmlparser.getdocument(p);\n" +
                        "        v_Root_Element := Dbms_Xmldom.getdocumentelement(v_Doc);\n" +
                        "        return 'aaaaaaaaaaaaaaaaaaaaaaaaaa1';\n" +
                        "    end;\n" +
                        "end Z$CLIENT_INTERFACE_API;");