在这里应该不能使用DDL语句,可以考虑用过程实现,即在过程中调用CreateLqzBiao函数执行DDL语句

解决方案 »

  1.   

    to duanzilin(寻): 但是需要有返回值啊,用过程不能有返回值啊!
      

  2.   

    过程也可以返回参数值的,你可以把要返回的参数定义成 out 或 in out再试试(注意两者是有区别的)
      

  3.   


    看看这种思路怎样?SQL> CREATE OR REPLACE FUNCTION TEST.FUNC_1 RETURN DATE AS
      2  BEGIN
      3     RETURN SYSDATE;
      4  END;
      5  /函数已创建。SQL> SELECT TEST.FUNC_1  FROM DUAL;FUNC_1
    -----------------
    20060218 20:37:00SQL> CREATE OR REPLACE FUNCTION TEST.FUNC_2 RETURN DATE
      2  AS
      3     DT DATE;
      4  BEGIN
      5     SELECT TEST.FUNC_1 INTO DT FROM DUAL;
      6     RETURN DT;
      7  END;
      8  /函数已创建。SQL> SELECT TEST.FUNC_2 FROM DUAL;FUNC_2
    -----------------
    20060218 20:37:52
      

  4.   

    to 楼上,函数里应该不能里执行建表的DDL语句,这里必须要用过程的吧