create
orreplace function f_get_bzgs(i_ny varchar2)
return number
as v_sql_bzgs varchar2(2000);
v_ksrq date := add_months(to_date(i_ny || '-21', 'yyyy-mm-dd'), -1);
v_jsrq date := to_date(i_ny || '-20', 'yyyy-mm-dd');
v_bzgs number;
begin
v_sql_bzgs := 'select
nvl(sum(working_hours),0) working_hours
from c_company_holidays_info t
where t.day_type = ''工作日''
and t.working_hours > 0
and t.day_date>=to_char(:v_ksrq,''yyyy-mm-dd'')
and t.day_date<=to_char(:v_jsrq,''yyyy-mm-dd'')';
begin
execute
immediate v_sql_bzgs
into v_bzgs
using v_ksrq, v_jsrq;
exception
when no_data_found then
v_bzgs := 0;
end;
return v_bzgs;
end;
1、建立函式的語句塊
create or replace function f_get_bzgs(i_ny varchar2)
return number as
–在這定義引數
begin
這裡寫**塊
end;
2、i_ny 為函式的引數,定義為varchar2型別,函式可以無參,也可以多個引數,視具體情況而定。
3、return number–說明這個函式的返回值型別是number,
當然函式的返回值型別也可以其他,還可以是table
3.1 如果要返回table型別
create
orreplace type type_table1_resul as object
( sid varchar2(50)
)
create
orreplace type type_table1_resul_table as
table
of type_table1_resul
先定義乙個table型別的物件。
這樣我們就可以在定義函式的時候 return type_table1_resul_table
返回定義的table型別,在定義變數的時候要申明
v_table1 type_table1_resul_table :=type_table1_resul_table();
v_sid varchar2(50);
最後將要返回的資料,迴圈插入到type_table1_resul中
v_table1.extend();
v_table1( v_table1.count) :=type_table1_resul v_sid);
return v_table1;
20180807模擬測試 t1 function
low逼的我也只能寫這樣的水題。對於乙個整數,定義 f x 為他的每個數字的階乘的乘積。例如 f 135 1 3 5 720。給出乙個數 a 可以包含字首零 a 滿足他的至少乙個數字大於 1。我們要求出最大 的整數 x,其中 x 不含 0 或 1,並且滿足 f a f x 輸入 第一行乙個整數 n,...
oracle學習筆記1
oracle安裝會自動的生成sys 使用者 和 system使用者 1 sys使用者是 超級使用者,具有最高許可權,具有sysdba角色,有create database 的許可權,預設密碼manager 2 system使用者是 管理操作員,許可權也非常大,具有sysoper角色,沒有create...
Oracle 學習筆記1
建立表空間 create tablespace 空間名稱 建立使用者 create user 使用者名稱 identified by 密碼 授權 grant dba to 使用者名稱 dmp檔案匯出 1 將資料庫test完全匯出,使用者名稱system 密碼manager,例項名test 匯出到d ...