当前位置:首页 » 编程语言 » 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值。