下面的存储过程给出了错误,我没有找到任何解决方案来解决此问题以使寄存器架构可以接受 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;