當前位置:首頁 » 編程語言 » sqlpl創建函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlpl創建函數

發布時間: 2022-10-03 15:12:42

① plsql 創建函數 編譯錯誤

CREATE OR REPLACE FUNCTION getRemark(sheetid in jyy.jyy_reporoid%type)
return jyy.jyy_reportdefine.remark%type is
vremark jyy_reportdefine.remark%type;
vrep_id jyy_reporreportdefine_id%type;
begin
select reportdefine_id, name into vrep_id

② PL/SQL 求函數編寫

CREATE OR REPLACE FUNCTION F_TAX(P_EMPNO IN EMP.EMPNO%TYPE) RETURN NUMBER AS
V_SAL EMP.SAL%TYPE;
V_RETURN NUMBER(4,2);
V_GRADE SALGRADE.GRADE%TYPE;
BEGIN
V_SAL:=0;
SELECT SAL INTO V_SAL FROM EMP WHERE EMPNO=P_EMPNO;
SELECT GRADE INTO V_GRADE FROM SALGRADE WHERE V_SAL BETWEEN LOSAL AND HISAL;
CASE V_GRADE
WHEN 1 THEN V_RETURN:=0;
WHEN 2 THEN V_RETURN:=V_SAL*0.05;
WHEN 3 THEN V_RETURN:=V_SAL*0.1;
WHEN 4 THEN V_RETURN:=V_SAL*0.15;
ELSE V_RETURN:=0;
END CASE;
RETURN V_RETURN;
EXCEPTION
WHEN OTHERS THEN
V_RETURN:=-1;
RETURN V_RETURN;
END F_TAX;

③ 怎樣用PL/SQL編寫帶兩個參數的函數

既然叫PL/SQL
那就oracle的吧:
CREATE
OR
REPLACE
PROCEDURE
orderno_check(
orderno_in
VARCHAR(100)--欄位不清楚什麼類型的,你自己改吧
)
AS
DECLARE
ostatus_tmp
CHAR(1)--欄位不清楚什麼類型的,你自己改吧
BEGIN
ostatus_tmp:='
';
SELECT
ostatus
INTO
ostatus_tmp
FROM
表名
WHERE
orderno=orderno_in;
IF
ostatus_tmp='p'
THEN
DELETE
FROM
表名
WHERE
orderno=orderno_in;
ELSE
DBMS_OUTPUT.put_line('該訂單已確認,無法刪除');
END
IF;
END;
/
說明,要想看到輸出語句一定要打開控制台輸出
SET
serveroutput
ON;
---
以上,希望對你有所幫助。

④ oracle中如何創建函數,本人用的是pl/sql,初學者,最好能給出例子和詳細講解

下面是一個函數的簡單示例!建議閱讀相關書籍以便充分理解!畢竟很多細節是很難一一描繪的.系統看看書會比較好!
函數是有名稱的pl/sql塊
函數有返回值
在表達式中調用函數
存儲在伺服器端
CREATE OR REPLACE FUNCTION get_sal
(v_id IN emp.empno%TYPE) RETURN NUMBER
IS
v_salary emp.sal%TYPE :=0;
BEGIN
SELECT sal INTO v_salary FROM emp WHERE empno = v_id;
RETURN (v_salary);
END get_sal;
/
驗證對象
select object_name,object_type from user_objects;
查看原程序
select text from user_source;
調用函數
select get_sal(7839) from al;
刪除函數
DROP FUNCTION get_salary;

⑤ PL/SQL基礎的函數

函數是命名了的、存儲在資料庫中的PL/SQL程序塊。函數接受零個或多個輸入參數,有一個返回值,返回值的數據類型在創建函數時定義。定義函數的語法如下:
FUNCTION
name
[(parameter[,parameter,...])]
RETURN
datatypes
IS
[local
declarations]
BEGIN
execute
statements
[EXCEPTION
exception
handlers]
END
[name]

⑥ sql 創建函數

USE xx
go
create function ST_FUN(@XH varchar(20))
returns TABLE
as
return (select s.[S#] as 學號,s.sname as 姓名,sc.grade as 成績 from s , sc where s.[s#]=sc.[s#] and s.[s#]=@xh )
go
select * from dbo.ST_FUN(2001)
go

CREATE TRIGGER ST_TRI
ON SC
FOR INSERT
AS
declare @XH varchar(20)
select @xh = [S#] from SC
if not exists(select * from S where [S#]=@xh)
ROLLBACK TRANSACTION
GO
insert into sc values ('9999','1','99')

⑦ 在plsql中,編寫一個函數,怎麼編寫

直接sql語句:

select wm_concat(decode(e.empno,7369,d.dname,null)),wm_concat(decode(e.empno,7369,e.ename,null)) from emp e, dept d

where e.empno in ((select e1.mgr from emp e1 where e1.empno = 7369), 7369)

and e.deptno = d.deptno

/



function :

createorreplacefunctionprint_(p_empnoinnumber)returnvarchar2is
l_resultvarchar2(100);
begin
selectwm_concat(decode(e.empno,p_empno,d.dname,null))||','||wm_concat(decode(e.empno,p_empno,e.ename,null))
intol_result
fromempe,deptd
wheree.empnoin
((selecte1.mgrfromempe1wheree1.empno=p_empno),p_empno)
ande.deptno=d.deptno;
return(l_result);
end;


測試:

SQL>selectprint_(7369)fromal;
PRINT_(7369)
--------------------------------------------------------------------------------
RESEARCH,SMITH

SQL>

⑧ 關於PLSQL怎麼建立表函數

什麼叫表函數?

⑨ 在plsql中創建函數,系統調用時,報錯ORA—06575

createorreplacefunctionv_emp(v_strnumber:=null)
returnnumber
AS
v_valuenumber(20);
BEGIN
selectidintov_valuefromempwhereid=v_str;--你確定這個表裡有id欄位?正常emp表裡應該是empno這個名稱
returnv_value;
commit;--不需要commit
END;

另外,你這個函數沒什麼意義啊?輸入一個v_str的參數,返回值給了v_value,還是這個id值。