oracle中函式和儲存過程簡單示例 動態sql

2021-05-22 22:54:16 字數 1770 閱讀 8738

oracle中函式和儲存過程

1. 函式

create or replace function getartcount(keyword in varchar2) return number

asresult number;

sqlt varchar2(4000);

begin

-- select t.sys_documentid into result from dom_2_doclib t where t.sys_topic like '%key%';

-- select count(t.sys_documentid) into result from dom_2_doclib t where t.art_auctioncode like '%art%';

-- select count(t.sys_documentid) into result from dom_2_doclib t where t.sys_topic like '%1%';

--  select count(t.sys_documentid) into result from dom_2_doclib t where t.sys_topic like '%高%';

sqlt:='select count(t.sys_documentid)  from dom_2_doclib t where t.art_auctioncode='''||keyword||''' or   t.sys_topic like ''%'||keyword||'%''';

sqlt:=sqlt||' or t.art_authors like ''%'||keyword||'%''';

dbms_output.put_line(sqlt);

execute immediate sqlt into result;

-- execute immediate sqlt into result;

dbms_output.put_line(result);

return result;

end getartcount;

呼叫方法:

select getartcount('齊白石') from dual;

2. 儲存過程

create or replace procedure getartscount(artcount out number,keyword in varchar2) as

sqlt varchar2(4000);

begin

-- select count(*) into artcount  from dom_2_doclib  t where t.sys_topic like '%key%';

sqlt:='select count(t.sys_documentid)  from dom_2_doclib t where t.art_auctioncode='''||keyword||''' or   t.sys_topic like ''%'||keyword||'%''';

sqlt:=sqlt||' or t.art_authors like ''%'||keyword||'%''';

execute immediate sqlt into artcount;

dbms_output.put_line(sqlt);

end;

呼叫方法 :

declare

a number;

begin

getartscount(a,'a');

dbms_output.put_line('aaaa=='||a);

end;

Oracle儲存過程Procedure簡單介紹

我們都知道sql語言是沒有判斷和過程控制語句的,而pl sql又很好的補充了sql語言這方面的不足。而儲存過程也是一種pl sql塊,但是儲存過程又跟傳統的pl sql塊不一樣,儲存過程是以命名的方式儲存於資料庫中的。它有很多優點,比如 1 儲存過程是以命名的資料庫物件形式儲存於資料庫當中。儲存在資...

Oracle儲存過程和儲存函式

參看 oracle儲存過程 儲存函式 說明 儲存過程 儲存函式都是物件。包括表 檢視 索引 序列 同義詞等也是物件。概念 指儲存在資料庫中供所有使用者程式呼叫的子程式叫儲存 過程 儲存函式。特點 完成特定功能的程式。區別 儲存函式可以通過return子句返回乙個值。建立和使用儲存過程 用create...

oracle儲存過程和儲存函式(1)

第乙個儲存過程 create orreplace procedure sayhelloworld asbegin dbms output.put line hello world end 呼叫儲存過程 1.execute exec 2.在儲存過程中呼叫 begin sayhelloworld end...