Oracle DBMS Registry Schema - 有谁知道如何使用 BLOB shcemadoc 进行 dbm



下面的存储过程给出了错误,我没有找到任何解决方案来解决此问题以使寄存器架构可以接受 BLOB 字段。请让我知道这个声明有什么错误。

CREATE OR REPLACE
PROCEDURE xsdUpload2(
    p_schemaURL IN VARCHAR2 ,
    p_schemaDoc IN BLOB )
IS
  schemaURL varchar2;
  schemaDoc BLOB;
BEGIN
    schemaURL := p_schemaURL; 
    schemaDoc := p_schemaDoc;
    dbms_xmlschema.registerSchema(schemaURL, schemaDoc , nls_charset_id('AL32UTF8')) , local => true , genTypes => true, genbean => false, genTables => True );

错误错误 (19,86): PLS-00103: 预期出现以下情况之一时遇到符号",": := 。( % ;

这是

nls_charset_id末尾的额外偏执

——
dbms_xmlschema.registerSchema(schemaURL, schemaDoc , nls_charset_id('AL32UTF8'))

这使得registerSchema函数调用结束,从而在其他参数上出错。

使用像Toad或SQL Developer这样的IDE,它可以在编写这些错误时捕获这些错误。

这个存储过程对我有用。在我错过声明后的开始和结束之前。它导致了所有的问题。

create or replace 
PROCEDURE xsdUpload2(
    p_schemaURL IN VARCHAR2,
    p_schemaDoc IN BLOB,
    v_response OUT VARCHAR2)
IS
BEGIN
  DECLARE
    schemaXML BLOB := p_schemaDoc;
  BEGIN
    dbms_xmlschema.registerschema(schemaurl => p_schemaURL, schemadoc => schemaXML, local => true , genTypes => true, genbean => false, genTables => true);
    v_response :='SUCCESS';
    COMMIT;
  EXCEPTION
  WHEN OTHERS THEN
    v_response := 'ERROR: Either this schema already exists (or) error occured while executing registerschema . Verify input parameter passed to stored procedure';
  END;
END;

最新更新