Oracle函數多種多樣,系統變量函數就是其中之一,下面就為您介紹三種最常見的系統變量函數,希望對您學習Oracle能有所幫助。
Oracle系統變量函數:
(1)SYSDATE
該函數返回當前的日期和時間。返回的是Oracle服務器的當前日期和時間。
select sysdate from dual;
insert into purchase values
(‘Small Widget','SH',sysdate, 10);
insert into purchase values
(‘Meduem Wodget','SH',sysdate-15, 15);
查看最近30天的所有銷售記錄,使用如下命令:
select * from purchase
where purchase_date between (sysdate-30) and sysdate;
(2)USER
查看用戶名。
select user from dual;
(3)USERENV
查看用戶環境的各種資料。
select userenv(‘TERMINAL') FROM dual;
以上Oracle系統變量函數的介紹。
CREATE OR REPLACE
FUNCTION get_salary(//函數
Dept_no NUMBER,//輸入參數
Emp_count OUT NUMBER)//輸出參數
RETURN NUMBER //返回參數
IS
V_sum NUMBER;//這是聲明函數的局部變量
BEGIN
SELECT SUM(SALARY), count(*) INTO V_sum, emp_count//這裡用到形參,emp_count是output類型的參數,會返回
FROM EMPLOYEES WHERE DEPARTMENT_ID=dept_no;
RETURN v_sum;//返回v_sum的值
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('你需要的數據不存在!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
END get_salary;
調用
DECLARE//這裡是調用時聲明變量
V_num NUMBER;
V_sum NUMBER;
BEGIN
V_sum :=get_salary(10, v_num);//v_num,v_sum這兩個變量調用函數得到值,v_num是emp_count得到的值,v_sum是函數裡return的v_sum的值
DBMS_OUTPUT.PUT_LINE('部門號為:10的工資總和:'||v_sum||',人數為:'||v_num);
END;
提供下思路,逐步測試看看,通過下面SQL測試:若測試OK,則name變量類型或者賦值異常,若測試異常,則考慮函數實現是否有異常
for:
declare
begin
dbms_output.putline(max_int(1,'aaaaaaa'));
end;