当前位置: 代码迷 >> Oracle技术 >> 存储过程如何使用程序创建
  详细解决方案

存储过程如何使用程序创建

热度:81   发布时间:2016-04-24 08:27:10.0
存储过程怎么使用程序创建?
我写了一个存储过程,希望能在程序运行的时候,第一次检查有无该过程,没有的话就自动创建,但我没有例子,在网上也找不到答案.

我用的是vb.net代码,希望有人能帮帮忙

------解决方案--------------------
SQL code
--用create or replace就可以了,不用检测存不存在create or replace procedure testisbegin    dbms_output.put_line('test');end;/
------解决方案--------------------
感觉需求还是有些怪,可以用异常判断或者考虑楼上的方法判断存储过程是否已创建,若未创建,则参考一下代码创建:
SQL code
CREATE OR REPLACE PROCEDURE pnew AS v_sql VARCHAR2(1000):='CREATE OR REPLACE PROCEDURE p01 ASBEGIN   NULL;END p01;';BEGIN  execute immediate v_sql;EXCEPTION WHEN OTHERS THEN   raise_application_error(-20102,'** create procedure error **' ||sqlerrm);END pnew;
------解决方案--------------------
上面即是用pnew创建p01存储过程的简单逻辑,如果要用vb.net创建,表示无能为力..
------解决方案--------------------
如果想检查,select * from dba_procedures where product_name='...'

创建完了默认就编译了一次。或许你动态创建的是错误的。要不,你在plsql环境中编译一次,看看错误。

实在不行,动态创建完了还可以动态编译一次。

动态执行 alter procedure p_doexec compile;
  相关解决方案