存储过程怎么使用程序创建?

lvlvlvlylyly 2012-07-08 11:03:25
我写了一个存储过程,希望能在程序运行的时候,第一次检查有无该过程,没有的话就自动创建,但我没有例子,在网上也找不到答案.

我用的是vb.net代码,希望有人能帮帮忙
...全文
170 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvlvlvlylyly 2012-07-16
  • 打赏
  • 举报
回复
顶翻这个贴子!!!!!!!!!!!!!!!!
lvlvlvlylyly 2012-07-13
  • 打赏
  • 举报
回复
最后顶一次啊!!!
jdsnhan 2012-07-12
  • 打赏
  • 举报
回复
如果想检查,select * from dba_procedures where product_name='...'

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

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

动态执行 alter procedure p_doexec compile;
lvlvlvlylyly 2012-07-12
  • 打赏
  • 举报
回复
plsql环境下按一下编译,马上就通过了,我自己感觉是程序里面的创建代码可能是错误的,可我在网上就没找到一个使用代码创建存储过程的例子。。。
lvlvlvlylyly 2012-07-11
  • 打赏
  • 举报
回复
顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!
lvlvlvlylyly 2012-07-10
  • 打赏
  • 举报
回复
还是老问题,程序中创建的存储过程,是未经过编译的!存储过程本身是没问题的.
小德 2012-07-09
  • 打赏
  • 举报
回复
上面即是用pnew创建p01存储过程的简单逻辑,如果要用vb.net创建,表示无能为力..
lvlvlvlylyly 2012-07-09
  • 打赏
  • 举报
回复
楼上的,我说的是使用程序自动创建存储过程,因为我的存储过程有许多拆分动作,这些拆分动作完了之后,会自动创建一张新表,所以在程序中,找不到新表的时候,就得调用存储过程,但是第一次,服务器里面是没有这个存储过程的!
所以,我其实要的就是使用代码如何创建存储过程的例子!有吗?谢谢....
小德 2012-07-09
  • 打赏
  • 举报
回复
感觉需求还是有些怪,可以用异常判断或者考虑楼上的方法判断存储过程是否已创建,若未创建,则参考一下代码创建:
CREATE OR REPLACE PROCEDURE pnew AS 
v_sql VARCHAR2(1000):=
'CREATE OR REPLACE PROCEDURE p01 AS
BEGIN
NULL;
END p01;
';
BEGIN
execute immediate v_sql;
EXCEPTION WHEN OTHERS THEN
raise_application_error(-20102,'** create procedure error **' ||sqlerrm);
END pnew;
lvlvlvlylyly 2012-07-09
  • 打赏
  • 举报
回复
楼上的,我说的是在程序中,EXE,程序来自动创建存储过程哦!
lvlvlvlylyly 2012-07-09
  • 打赏
  • 举报
回复
Dim sql As String
sql = My.Resources.strChai
Dim CN As OracleConnection
CN = New OracleConnection(LianJie)

Try
CN.Open()
Dim cmd As OracleCommand = New OracleCommand(sql, CN)
cmd.ExecuteNonQuery()
cmd.ExecuteNonQuery()

sql里面就是一个完整的存储过程,在pl/sql里面可以正常创建,但在程序中创建的时候就多了个红叉...好象没有经过编译1~
人生无悔 2012-07-08
  • 打赏
  • 举报
回复

--用create or replace就可以了,不用检测存不存在
create or replace procedure test
is
begin
dbms_output.put_line('test');
end;
/



--或者你用下面的语句判断是否存在,TEST为你的存储过程名字
select count(1) from all_objects where object_type='PROCEDURE'
and object_name ='TEST';

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧