create or replace function p_assesspresoncount (cagentcode varchar2)
return number authid current_user is
pragma autonomous_transaction;
result number;
v_cursor number;--游標id
sqlstring varchar2(8000);
v_powers number;
v_count int;
tagentcode varchar2(8000);
begin
if cagentcode is null then
return 0;
elsif substr(cagentcode,-1,1)=',' then
tagentcode := substr(cagentcode,2,length(cagentcode)-2);
else
tagentcode := substr(cagentcode,2);
end if;
sqlstring:='select count(distinct agentcode) from laagent where branchtype=''1'' and agentcode in ('||tagentcode||')';
v_cursor := dbms_sql.open_cursor;--開啟游標;
dbms_sql.parse(v_cursor ,sqlstring ,dbms_sql.native);--解析動態sql語句;
--繫結輸入引數,v_price的值傳給 :p
--dbms_sql.bind_variable(v_cursor ,':p',v_price);
--定義列,v_powers對應select 語句中的第1列
dbms_sql.define_column(v_cursor,1,v_powers);
--執行動態sql語句
v_count := dbms_sql.execute(v_cursor);
loop
--從游標中把資料檢索到快取區(buffer)中,緩衝區 的值只能被函式column_value()所讀取
exit when dbms_sql.fetch_rows(v_cursor)<=0;
--函式column_value()把緩衝區的列的值讀入相應變數中。
--第1列的值被讀入v_phone_name中
dbms_sql.column_value(v_cursor,1,v_powers);
end loop;
dbms_sql.close_cursor(v_cursor);--關閉游標
result:=v_powers;
return result;--返回統計的數量
end p_assesspresoncount;
/
ORACLE 統計男女數量
在寫學校的大作業的時候,對oracle有的新的認識,雖然也碰了許多問題,在這裡我總結了一些問題和需要注意的點,所有的例子都是 於學校的作業,僅供參考!也希望大家可以在我這裡少碰壁。謝謝大家!在這個例子中主要用到select,count,decode 和 group by 而其中,decode 和 g...
mysql如何分類統計數量
比如我表test裡面有id,mc,xh三個字段 分別是自動編號,鋼材名稱 若干種 鋼材型號 大號,中號,小號 id mc xh 1鋼管 大號 2銅管 大號 3鐵管 小號 4鋁管 中號 5 鋼管 小號 我現在要分別統計出 mc 裡面的各種型號的東西有多少。意思是 我要統計鋼管,銅管,鐵管,鋁管的大,中...
mysql如何分類統計數量
比如我表test裡面有id,mc,xh三個字段 分別是自動編號,鋼材名稱 若干種 鋼材型號 大號,中號,小號 id mc xh 1鋼管 大號 2銅管 大號 3鐵管 小號 4鋁管 中號 5 鋼管 小號 我現在要分別統計出 mc 裡面的各種型號的東西有多少。意思是 我要統計鋼管,銅管,鐵管,鋁管的大,中...