数据库存储过程声明部分
1. sql存储过程 必须声明标量变量问题 数据库中执行成功,但是当我用程序调用存储过程时提示“必须声明标量”
exec('insert into ' +@tablename+ ' values(@caname,@firsturl,@num,@seconrl,@fromurl,@flg)')
修改一下:
exec('insert into ' +@tablename+ ' values('+@caname+ ','+@firsturl+ ','+@num+ ','+@seconrl+ ','+@fromurl+ ','+@flg+ ')')
2. 数据库中 procere 是什么
在数据库中PROCEDURE叫存储过程!
其实它就是函数!
它可以传入参数和传出参数!
具体声明为:
CREATE PROC 名称
@变量名 类型 INPUT,
@变量名 类型 OUTPUT
AS
BEGIN
函数体。。。。。。。
END
你在SQL上可以查到帮助的!
好好看看!
3. 数据库中@代表什么意思
数据库中@代表是局部变量声明。用于存储过程中。格式是@参数名数据类型[VARYING] [=内定值] [OUTPUT]。每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。
(3)数据库存储过程声明部分扩展阅读:
在建立数据库时通过@设定一个字段参数的默认值。如果@的字段参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT。
而如果@的字段参数只是做输出参数用,则可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。
4. 存储过程出现 SQL statement ignored错误是什么问题
存储过程出现 SQL statement ignored错误是:存储过程语句错误,字段或变量名可能拼错,导致存储过程无法执行。
解决方法:仔细检查存储过程里的变量,字段,语句等是否正确。
(4)数据库存储过程声明部分扩展阅读:
PL/SQL引擎的作用:
编写的SQL语句,通过网络、java程序或者客户端工具发送给关系型数据库管理系统,PL/SQL引擎负责拿到这个字符串(SQL语句就是一个字符串文本格式),对其SQL语句进行语法分析,判断该SQL语句否符合Oracle中的语法要求,若符合,则执行SQL语句。
PL/SQL程序块与SQL语言的功能:
SQL语句
通过多条SQL语句实现功能时,每条语句都需要在客户端和服务端传递,而且每条语句的执行结果也需要在网络中进行交互,占用了大量的网络带宽,消耗了大量网络传递的时间,而在网络中传输的那些结果,往往都是中间结果,而不是我们所关心的。
PL/SQL程序块
而使用PL/SQL程序是因为程序代码存储在数据库中,程序的分析和执行完全在数据库内部进行,用户所需要做的就是在客户端发出调用PL/SQL的执行命令,数据库接收到执行命令后,在数据库内部完成整个PL/SQL程序的执行,并将最终的执行结果反馈给用户。
在整个过程中网络里只传输了很少的数据,减少了网络传输占用的时间,所以整体程序的执行性能会有明显的提高。
参考资料来源:网络-SqlServer
5. 创建存储过程的sql语句
创建存储过程需要具体问题具体分析,一般以oracle数据库为例,语法为:
CREATE[ORReplace]PROCEDURE[schema.]procere_name
[(argument[{IN|OUT|INOUT}]datatype,
...
argument[{IN|OUT|INOUT}]datatype)]
{IS|AS}
[descriptionpart说明部分]
BEGIN
SQLSTATEMENT语句序列
[EXCEPTION例外处理]
END[procereName过程名];
语法分析:
ORREPLACE
是一个可选的关键字,建议用户使用此关键字。如果过程已经存在,该关键字将重新创建过程,这样就不必删除和重新创建过程。
关键字IS和AS均可,
它们本身没有区别。IS后面是一个完整的PL/SQL块,可以定义局部变量,但不能以DECLARE开始。局部变量在过程内部存放值。
形式参数可以有三种模式:IN、OUT、INOUT。如果没有为形式参数指定模式,那么默认的模式是IN。
IN表示输入参数
OUT表示输出参数
6. sql 存储过程中 如何使用declare 有的存储过程声明了,有的没有声明。请回答的详细点。。谢谢
1、打开SQL Database Studio。