nynw.net
当前位置:首页 >> 存储过程定义局部变量 >>

存储过程定义局部变量

不声明,不能用,局部变量使用前必须declare

例: --3创建带输入,输出参数的存储过程 if exists(select name from sysobjects where name='h3'and type='p') drop procedure h3 go create procedure h3 @p1 int,@p2 char(30) output as select @p2=s_name from stu where s_id=@p1 go --调...

可以。在数据库编程中很常用到,比如oracle中,声明在包package体内的,对整个包中的存储过程、函数等都可见,也就是整个包中的全局变量。而在函数体内或者存储过程内定义的变量则属于局部变量了

在存储过程里里面,也就是as后面 CREATE PROCEDURE lg_get_hz_bmwz @hztype smallint, @mycursor CURSOR VARYING OUTPUT AS declare @errcode int

范围上的区别,就像在方法外声明的变量可以用在多个方法内使用,而方法内声明的变量只能在该方法内使用。

如果是存储过程,比如 username varchar2(20); username :="张三";

你在写存储过程的时候就按照语法 CREATE OR REPLACE PROCEDURE P_NAME IS BEGIN END P_NAME; 就行了,但是你要是在SQL window或者command window中调试一段代码的话,就要用declare声明。

用动态SQL。 CREATE OR REPLACE PROCEDURE TEST(I_TABLE IN VARCHAR2)ISBEGIN DECLARE STRSQL VARCHAR2(4000); P_VALUE VARCHAR2(4000); BEGIN STRSQL := 'SELECT COL FROM ' || I_TABLE ; --COL为字段名,保证能且只返回一行 EXECUTE IMMEDIATE...

如果你把存储过程看作是批处理语句就好理解多了! 存储过程只不过是一个带着名称的SQL批处理语句,如果在整个过程中需要变量时就是可以声明,但该变量声明后只能存活在批处理(存储过程)的运行中,运行完毕后就会消失,这种声明的格式就是 decl...

CREATE PROCEDURE SUPPLIER @SNO CHAR(20),@SNAME CHAR(20)OUTPUT, @STATUS CHAR(20)OUTPUT,@CITY CHAR(20)OUTPUT AS SELECT SNAME,STATUS,CITY FROM S WHERE SNO=@SNO GO DECLARE @NAME CHAR(20),@STATU CHAR(20),@CIT CHAR(20) EXECUTE SUPPLI...

网站首页 | 网站地图
All rights reserved Powered by www.nynw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com