【问题标题】:When i execute the following code in pl/sql developer it throws a error?当我在 pl/sql developer 中执行以下代码时,它会引发错误?
【发布时间】:2017-10-11 06:15:35
【问题描述】:
**create or replace procedure Xml_Table is
begin
  DECLARE
 l_xmltype XMLTYPE;
BEGIN

 SELECT XMLELEMENT("employees",
           XMLAGG(
             XMLELEMENT("employee",
               XMLFOREST(
                 e.empno AS "empno",
                 e.ename AS "ename",
                 e.job AS "job",
                 TO_CHAR(e.hiredate, 'DD-MON-YYYY') AS "hiredate"
               )
             )
           ) 
         )
  INTO   l_xmltype
  FROM   emp e;
  INSERT INTO xml_tab VALUES (1, l_xmltype);
  COMMIT;
end Xml_Table;**

在这个 Xml_Table 中是我创建的过程。 Xml_tab 是我在数据库中创建的 xml 数据类型表。还有一个问题是有一种方法可以创建一个过程 pl/sql,我可以在其中删除并创建新的 xml 类型表,而不是在过程之外进行。

错误消息:PROCEDURE APPS.XML_TABLE 的编译错误

错误:PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:

      ( begin case declare end exception exit for goto if loop mod
      null pragma raise return select update while with
      <an identifier> <a double-quoted delimited-identifier>
      <a bind variable> << continue close current delete fetch lock
      insert open rollback savepoint set sql execute commit forall
      merge pipe purge

【问题讨论】:

  • 删除第 1 行和第 2 行,它应该可以工作。

标签: plsql plsqldeveloper


【解决方案1】:
Try this:
create or replace procedure Xml_Table as
/*
begin --> REMOVE
DECLARE --> REMOVE
*/
 l_xmltype XMLTYPE;
BEGIN
...

【讨论】:

  • 非常感谢它的工作。有没有办法可以在过程中包含 CREATE 和 DROP XML 表。
  • 可以使用EXECUTE IMMEDIATE: execute immediate 'drop table mytable';立即执行'创建表mytable(第1列整数等)';。请投票和/或接受答案。
猜你喜欢
  • 2017-11-14
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多