1樓:賓士
【ora-00955: 名稱已由現有物件使用】這個錯誤說的不僅僅是有可能你有儲存過程使用了【student2】,還有可能是你有表名叫【student2】或者其他oracle物件叫【student2】。
說明:其實由於你已經使用了【create or repalace procedure】即使有儲存過程叫【student2】也會被覆蓋掉,你用下面的命令查詢一下,有什麼物件叫【student2】,刪掉它或者換一個儲存過程名字。
【select object_name,object_type from user_objects where object_name='student2';】
---以上,希望對你有所幫助。
2樓:匿名使用者
這種情況是因為資料庫中已經存在同名的儲存過程或者其他物件(object)等造成。
解決方法:
1、確定原有名稱的儲存過程是否有用,如果有用,可為自己的新儲存過程重新定義名稱。
2、如果確定原有的儲存過程無用,在建立新的同名儲存過程時可用create or replace 來解決。
如,目前資料庫中存在一個叫p_test的儲存過程,如果確定無用,執行時可按如下方法:
oracle刪除constraint再新增同名約束報 名稱已由現有物件使用
3樓:
確認一下你是否刪除了
查詢:select * from user_constraints where table_name='你的表名'
刪除約束的方法:
alter table t drop primary key cascade ---刪除主鍵
alter table t drop unique(colname) ----刪除colname上的唯一約束
4樓:匿名使用者
你是直接drop 掉的?
oracle儲存過程的建立和執行問題
1.儲存過程中不能直接select 出結果,定義一些變數 之後select into 變數 2.既然是select就沒有必要用動態sql了,而且你的v sql 拼的有問題 你是在pl sql的sql語句視窗執行的嗎?在sql語句視窗要執行儲存過程的話要用語句塊begin sp ys 201305 5...
在oracle中建立儲存過程,來迴圈獲取a表中存放的查詢sql語句並一條一條的執行該sql語句並存下來
create or replace package body pkg a testpackage is procedure pkg a testprocedure prm 引數 in varchar2,prm 返回值 out number,prm 錯誤資訊 out varchar2 is type ...
關於oracle中建立簡單的儲存過程,求助
open out all for v sql,這個開啟遊標的寫法,你裡面沒定義遊標!v sql nvarchar2 2000 這個資料型別改為。v sql varchar2 2000 說的對,out all沒有定義遊標。sql,建立一個簡單的儲存過程 procgetjc 要求結果是求5 create...