當前位置:首頁 » 服務存儲 » oracle存儲過程行記錄
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle存儲過程行記錄

發布時間: 2023-02-23 03:58:39

A. oracle存儲過程刪除一條插入一條

Oracle存儲過程可以用來刪除和插入數據。要刪除一條記錄,可以使用DELETE語句,如下所示

DELETE FROM table_name
WHERE condition;

要插入一條記錄,可以使用INSERT語句,如下所示:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

B. oracle 存儲過程通過輸入條件查詢,返回多條記錄和記錄數。

create or replace procere Pro_Test(Conditions in varchar,
Codeing out char,
resmessage out varchar) is

v_Num number(2);
begin

select count(*) into v_Num from emp where ename like '%Conditions%';

if v_Num = 0 then
Codeing := '9999';
resmessage := '沒有找到需要的數據';
else
Codeing := '0000';
resmessage := '有記錄';
end if;
end Pro_Test;

照著上面的樣式,再根據自己的需要改下吧。

C. oracle存儲過程如何輸出信息

可用DBMS_OUTPUT.PUT_LINE()對存儲過程的進行輸出。

編寫存儲過程:

create or replace procere test_pro(in_num number)

as

M number;

begin

M := in_num;

if 0 < M then

dbms_output.put_line('輸出sql語句1');

elsif M < 3 then

dbms_output.put_line('輸出SQL語句2');

else

dbms_output.put_line('nothing');

end if;

end;

(3)oracle存儲過程行記錄擴展閱讀;

存儲在資料庫的數據字典中,存儲在當前的應用中安全性由資料庫提供安全保證,必須通過授權才能使用存儲子程序,安全性靠應用程序來保證,如果能執行應用程序,就能執行該子程序。模式描述IN參數用來從調用環境中向存儲過程傳遞值,不能給IN參數賦值,給此參數傳遞的值可以是常量、有值的變數、表達式等。

D. oracle查看執行過哪些存儲過程

selectt.sql_id,
t.sql_text,
s.plan_hash_value,
s.optimizer_cost,
s.executions_total,
s.elapsed_time_total,
s.disk_reads_total,
s.buffer_gets_total
fromDBA_HIST_SQLSTATs,DBA_HIST_SQLTEXTt
wheres.sql_id=t.sql_id
andt.sql_textlike'%存儲過程名稱%';

沒有想到其他好辦法,確實不太好查了,把存儲過程當作SQL來查找吧。

E. 如何用Oracle存儲過程實現返回多行記錄

存儲過程輸出參數為游標類型,給個DEMO給你
CREATE OR REPLACE PROCEDURE SELECTALLUSER(P_ALLUSER OUT SYS_REFCURSOR) IS
BEGIN
OPEN P_ALLUSER FOR
SELECT A.USERID,A.USERNAME,A.REALLYNAME,B.GROUPNAME FROM TBUSERS A,USERGROUP B WHERE A.GROUPID=B.GROUPID;
END SELECTALLUSER;

F. 存儲過程中select語句怎麼實現多行記錄

也是習慣了SQL Server的存儲過程中直接可以使用select語句輸出結果集,但這個在Oracle中就行不通了。 如果你僅僅是想看到存儲過程中語句所影響的記錄內容,那麼可以考慮使用游標,然後循環游標用dbms_output將內容輸出,從而可以在dbms的輸出中

G. oracle存儲過程如何返回記錄集

存儲過程:
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;

PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/

CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/
存儲函數:
CREATE OR REPLACE
package pkg_test as
type myrctype is ref cursor;

function get(intID number) return myrctype;
end pkg_test;
/

CREATE OR REPLACE
package body pkg_test as
function get(intID number) return myrctype is
rc myrctype; --定義ref cursor變數
sqlstr varchar2(500);
begin
if intID=0 then
--靜態測試,直接用select語句直接返回結果
open rc for select id,name,sex,address,postcode,birthday from student;
else
--動態sql賦值,用:w_id來申明該變數從外部獲得
sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id';
--動態測試,用sqlstr字元串返回結果,用using關鍵詞傳遞參數
open rc for sqlstr using intid;
end if;

return rc;
end get;

end pkg_test;
/

H. 如何查看oracle中存儲過程執行的歷史記錄

select t.sql_id,
t.sql_text,
s.plan_hash_value,
s.optimizer_cost,
s.executions_total,
s.elapsed_time_total,
s.disk_reads_total,
s.buffer_gets_total
from DBA_HIST_SQLSTAT s, DBA_HIST_SQLTEXT t
where s.sql_id=t.sql_id
and t.sql_text like'%存儲過程名稱%';

沒有想到其他好辦法,確實不太好查了,把存儲過程當作SQL來查找吧。

I. oracle中的存儲過程,執行後oracle自己會記錄執行日誌到資料庫中么,比如執行時間結果,從哪能查看到

不會記錄,只會記錄存儲過程里的SQL語句到v$sql里

J. Oracle存儲過程返回記錄集

declare
begin
for a in(select s.stuid,s.stuname,s.stusex,c.classnum,c.classname ,r.sturesults tmp from student s
left join result r on s.stuid=r.stuid
left join calss c on r.classnum=c.classnum
)
case when a.tmp>90 then
你要執行的操作;
case when a.tmp>60 and a.tmp<90 then
你要執行的操作;
case when a.tmp<60 then
你要執行的操作;
else
end case;
end;