當前位置:首頁 » 存儲配置 » oracle存儲過程修改怎麼保存

oracle存儲過程修改怎麼保存

發布時間: 2022-08-01 03:55:54

1. oracle :下面的存儲過程怎麼修改啊

你把execute immediate v_sql;這個改成dbms_output.put_line(V_sql);
然後將 limit 1000改小點,改成limit 10

在sql plus中執行存儲過程前先執行命令:
set serveroutput on;
然後再執行這個存儲過程
執行完了之後你就可以看到你輸出的這個V_Sql語句了,你再看看哪裡存在問題好了

2. PLSQL怎麼修改oracle伺服器上的存儲過程

create or replace procere ...
執行一次就可以保存到伺服器了
在plsql用 / 執行

3. 如何把oracle存儲過程保存到資料庫

oracle
存儲過程的基本語法
1.基本結構
CREATE
OR
REPLACE
PROCEDURE
存儲過程名字
(
參數1
IN
NUMBER,
參數2
IN
NUMBER
)
IS
變數1
INTEGER
:=0;
變數2
DATE;
BEGIN
END
存儲過程名字
2.SELECT
INTO
STATEMENT
將select查詢的結果存入到變數中,可以同時將多個列存儲多個變數中,必須有一條
記錄,否則拋出異常(如果沒有記錄拋出NO_DATA_FOUND)
例子:
BEGIN
SELECT
col1,col2
into
變數1,變數2
FROM
typestruct
where
xxx;
EXCEPTION
WHEN
NO_DATA_FOUND
THEN
xxxx;
END;
...
3.IF
判斷
IF
V_TEST=1
THEN
BEGIN
do
something
END;
END
IF;
4.while
循環
WHILE
V_TEST=1
LOOP
BEGIN
XXXX
END;
END
LOOP;
5.變數賦值
V_TEST
:=
123;
6.用for
in
使用cursor
...
IS
CURSOR
cur
IS
SELECT
*
FROM
xxx;
BEGIN
FOR
cur_result
in
cur
LOOP
BEGIN
V_SUM
:=cur_result.列名1+cur_result.列名2
END;
END
LOOP;
END;
7.帶參數的cursor
CURSOR
C_USER(C_ID
NUMBER)
IS
SELECT
NAME
FROM
USER
WHERE
TYPEID=C_ID;
OPEN
C_USER(變數值);
LOOP
FETCH
C_USER
INTO
V_NAME;
EXIT
FETCH
C_USER%NOTFOUND;
do
something
END
LOOP;
CLOSE
C_USER;
8.用pl/sql
developer
debug
連接資料庫後建立一個Test
WINDOW
在窗口輸入調用SP的代碼,F9開始debug,CTRL+N單步調試

4. 誰能介紹如何修改一個Oracle存儲過程的實際操作步驟

以下是介紹如何修改一個Oracle存儲過程的實際操作步驟,如果你要執行Oracle存儲過程,首先你需要寫出一個關於輸出的字元串「Hello World!」的存儲過程,以下的相關內容就是接這講述Oracle存儲的步驟。

讓我們寫一個輸出字元串「Hello World!」的存儲過程,用Notepad打開你的skeleton.sql 文件,. 用DBMS_OUTPUT.PUT_LINE 過程調用去替換NULL語句,如下所示:

CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;

保存到文件skeleton.sql.

從SQL*Plus命令行, 打開文件skeleton.sql .

SQL> @skeleton
SQL>
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
* END;
SQL> /

SQL*Plus 通知你存儲過程成功創建並輸出提示信息:Procere created.

SQL>

用EXECUTE 命令運行你的存儲過程:

SQL> EXECUTE skeleton;
SQL*Plus顯示存儲過程運行成功:

PL/SQL procere successfully completed.

我們想要的輸出字元串 "Hello World!"沒有出來,在顯示一個DBMS_OUTPUT.PUT_LINE 結果前需要運行一個SET命令,在SQL*Plus 命令行提示符,鍵入:

SQL> SET SERVEROUTPUT ON
再次執行你的存儲過程:

SQL> EXECUTE skeleton;
現在結果輸出了:

Hello World!
PL/SQL procere successfully completed.
當調試一個存儲過程時,遵循一樣的步驟,修改SQL文件,創建存儲過程,執行存儲過程,根據編譯器反饋的出錯信息進行修改,這一步是非常繁瑣的,需要依靠經驗。

在實際的商用存儲過程的開發調試過程中,由於涉及很多表、類型、游標、循環、條件等復雜的邏輯,和PL/SQL語句的靈活運用,編譯時會產生很多錯誤提示信息,程序員在根據這些錯誤信息定位,進行修正,再編譯最後得到正確的結構;

放棄一個Oracle存儲過程

如果在資料庫中你不在需要一個存儲過程你可以刪除它,SQL語句 DROP PROCEDURE 完成從資料庫中刪除一個存儲過程,DROP PROCEDURE 在SQL中被歸類為數據定義語言(DDL) 類操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE。.

在SQL*Plus 命令提示符下,使用DROP PROCEDURE SQL 語句刪除你的叫做skeleton的存儲過程:

SQL> DROP PROCEDURE skeleton;
SQL*Plus assures us the procere has been removed:
Procere dropped.

本文詳細討論了如何使用Oracle工具開發Oracle存儲過程的步驟。最後在存儲過程的使用中可能是程序直接調用,也可能被觸發器調用。

希望我的回答能對您有所幫助!!!

5. 在oracle sqlplus 中怎麼編輯,保存和運行 pl-sql的存儲過程,函數什麼的

編輯不太好編輯,畢竟那個頁面一點也不靈活
建議在文本上打好你要運行的東西,然後粘貼到sqlplus上
如果你粘貼不了,建議你用cmd模式進入sqlplus
至於保存
你create後自動就保存到資料庫中了,不知道你說的保存是什麼意思
執行的話,這個得看你寫的存儲過程和函數是什麼樣的了,不同的存儲過程和函數執行的方式也有區別呀

6. oracle修改欄位類型 存儲過程怎麼寫

我沒弄明白你的意思,每次都要改嗎?還是改一次就完事?
但是,判斷這個表存在再執行sql就比較簡單,你用user_tables視圖,或者segment視圖就可以了,如果還要判斷欄位,那麼用user_tab_columns視圖也行啊,有這個表,這個欄位,類型是varchar這些都可以查,查的有就可讀取出表名,欄位名等內容,然後就可以改了吧。
至於修改,就是正常修改啊,還能怎麼改,如果不直接alert那麼個人覺得最好的辦法就是加一個欄位,然後將這個欄位復制過去,再刪除原來的欄位,再把名字改回來。你可以試試。

7. 怎麼修改oracle資料庫存儲過程

怎麼修改oracle資料庫存儲過程
看你是不是用客戶端 工具了,你要是用了工具,在你的存儲過程,滑鼠右鍵,點 修改,再保存就行了。 你要好好利用工具啊。

8. 如何把oracle存儲過程保存到資料庫里

sqlplus 中直接敲入存儲過程代碼(create or replace procere ...), / 結束,
如果代碼沒有錯誤,該過程就被保存到資料庫中。
可以用 exec 過程名 運行。

如果是plsql developer之類的工具,那更簡單,編輯完存儲過程後,有運行按鈕,點擊即可。

9. oracle存儲過程回到游標結果集怎樣存到表中

有倆種方法:
一種是聲明系統游標,一種是聲明自定義游標,然後後面操作一樣,參數類型為
in out 或out
(1)聲明個人系統游標.(推薦)
create or replace p_temp_procere
(
cur_arg out sys_refcursor; --方法1
)
begin
open cur_arg for select * from tablename;
end
調用
declare
cur_calling sys_refcursor;
begin
p_temp_procere(cur_calling); --這樣這個游標就有值了
for rec_next in cur_calling loop
....
end loop;
end;

(2)在包頭中申明一個游表類型,然後調用者申明一個這個類型的游標變數,傳給返回遊標的存儲過程 ,存儲過程out這個結果集,這種方法很麻煩.游標類型不能像索引表一樣使用create or replace type方法來創建,所以只能在包中申明,並且需要使用/來執行,後面的存儲過程才認這個游標類型.(不推薦,但是建議要知道並且要會這種方式,畢竟它有它存在的道理)
--定義全局變數
create or replace package pkg_package
as
type type_cursor is ref cursor;
type type_record is record
(
test01 varchar2(32),
test02 varchar2(32),
test03 varchar2(32)
);
end;
/
--創建返回遊標的存儲過程
create or replace procere p_temp_procere
(
cur_out_arg out pkg_package.type_cursor
)
is
begin
open cur_out_arg for select * from test;
end;
/
--調用
declare
cur_out_arg pkg_package.type_cursor;
rec_arg pkg_package.type_record;
begin
p_temp_procere(cur_out_arg);
fetch cur_out_arg into rec_arg;
dbms_output.put_line(rec_arg.test01);
dbms_output.put_line(rec_arg.test02);
dbms_output.put_line(rec_arg.test03);
end;

10. PLSQL修改了存儲過程如何編譯保存

如果是在plsql developer中修改的,可以直接點那個齒輪圖標,或者F8即可編譯。
如果是在sqlplus中,那就敲入修改後的過程代碼(create or replace procere...),最後以/結尾運行即可。

熱點內容
ios應用上傳 發布:2024-09-08 09:39:41 瀏覽:438
ios儲存密碼哪裡看 發布:2024-09-08 09:30:02 瀏覽:869
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:653
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:744
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:173
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:780
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995