SybaseIQ存储过程学习笔记.docxVIP

  • 26
  • 0
  • 约 11页
  • 2017-02-28 发布于湖北
  • 举报
实践:SYBASE IQ存储过程学习笔记存储过程存储过程将过程化的SQL语句存储在数据库中,供所有程序使用。存储过程中可以包含控制语句,如LOOP循环语句、IF和CASE这样的条件语句。存储过程通过CALL语句进行调用,使用变量传入参数和返回结果。可以返回结果集,也可以调用其他的存储过程。存储过程和函数的区别自定义函数是只能返回单一值的特定的存储过程。函数不修改传入的参数,但是可以使其用于查询和其他SQL语句之中。存储过程的调试参见附录C Debugging Logic in the Database存储过程概要常用的存储过程创建存储过程修改存储过程调用存储过程删除存储过程存储过程的访问控制返回值常用的存储过程sp_iqprocedure此存储过程可以显示系统和用户自定义的存储过程sp_iqprogram显示存储过程的参数信息,包括结果集变量和SQLSTATE/SQLCODE错误值创建存储过程CREATE PROCEDUREnew_dept(IN id INT,IN name CHAR(35),IN head_id INT )BEGININSERT INTO DBA.department(dept_id, dept_name, dept_head_id)VALUES(id, name, head_id);END修改存储过程使用SQL语句ALTER PROCEDURE,将整个新的存储过程包含其中。必须重新给修改后的存储过程赋予用户权限。调用存储过程CALL new_dept(210, ‘Eastern Sales’, 902);删除存储过程DROP PROCEDURE new_dept存储过程的访问控制见注(2)返回值可以通过三种方式传回值:使用OUT或者INOUT返回值;返回结果集;使用RETURN语句返回单值。使用OUT和INOUT返回值CREATE PROCEDURE AverageSalary( OUTavgsalNUMERIC (20,3) )BEGIN SELECT AVG( salary ) INTO avgsal FROM employee;END返回结果集CREATE PROCEDURE SalaryList (IN department_id INT)RESULT ( Employee ID INT, Salary NUMERIC(20,3) )BEGIN SELECT emp_id, salary FROM employee WHERE employee.dept_id = department_id;END如果在存储过程中一个语句动态的创建了一个临时表,然后从里面选取结果集,为了避免如“Column not found”这样的错误,必须使用EXECUTE IMMEDIATE WITH RESULT SET ON这样的语法。例:CREATE PROCEDURE p1 (IN @t varchar(30)) BEGIN EXECUTE IMMEDIATE SELECT * INTO #resultSet FROM || @t; EXECUTE IMMEDIATE WITH RESULT SET ON SELECT * FROM #resultSet;END自定义函数创建自定义函数CREATE FUNCTION fullname (firstname CHAR(30),lastname CHAR(30))RETURNS CHAR(61)BEGIN DECLARE name CHAR(61); SET name = firstname || || lastname; RETURN ( name );END和存储过程存在3个差异参数不需要IN、OUT和INOUT,所有参数默认是INRETURNS语句指明要返回的值RETURN语句用来返回值调用函数SELECT fullname (emp_fname, emp_lname)FROM employee;删除函数DROP FUNCTION fullname授予权限GRANT EXECUTE ON fullname TO another_userREVOKE EXECUTE ON fullname FROM another_userBATCH概要以及BATCH中可以使用的SQL语句什么是BATCH由一些分号分隔的SQL语句,例1:INSERTINTO department ( dept_id, dept_name )VALUES ( 220, Eastern Sales ) ;UPDATE employeeSET dept_id = 220WHERE dept_id = 200AND st

文档评论(0)

1亿VIP精品文档

相关文档