当前位置:首页 » 存储配置 » 存储过程赋值

存储过程赋值

发布时间: 2022-02-20 23:41:45

sql存储过程中怎样给变量赋值

exec
是执行存储过程的命令,不能作为存储过程名
而且你这个似乎是希望用变量转换成SQL命令,不是这样用法的

Ⅱ oracle 存储过程赋值的方法

标量赋值:
格式:名字 类型 := 赋值内容
例子:aa varchar(5):= 'ss';

总共我知道的有4中:1.标量,2.显示变量,3声明记录,4索引表

Ⅲ mysql 存储过程怎么赋值

DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_getAllTablesCount`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_getAllTablesCount`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtablesnVARCHAR(100);
DECLAREtableCountINT;
DECLAREstopFlagINT;
DECLAREsqlStrVARCHAR(1000);
--注意:请修改数据库名称
DECLAREcursor_nameCURSORFORSELECTTABLE_NAMEFROMinformation_schema.tablesWHEREtable_schema='test';
'02000'SETstopFlag=1;
CREATETABLEIFNOTEXISTStemp_table(table_nameVARCHAR(100),table_countVARCHAR(100));
OPENcursor_name;
REPEAT
FETCHcursor_nameINTOtableName;
SETsqlStr=CONCAT('SELECTCOUNT(1)into@tableCountFROM',tableName);
SELECTsqlStrINTO@sqlStr;
--select@sqlStr;
SELECT@tableCountINTOtableCount;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
SETsqlStr=CONCAT('insertintotemp_tablevalues(''',CONCAT(tableName),''',''',CONCAT(tableCount),''');');
SELECTsqlStrINTO@sqlStr;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
UNTILstopFlagENDREPEAT;
CLOSEcursor_name;
SELECTtable_name,table_countFROMtemp_tableORDERBYtable_countDESC;
--PREPAREstepFROM@sql1;
--EXECUTEstep;
DROPTABLEtemp_table;
END$$
DELIMITER;

Ⅳ 在存储过程中给变量赋值的问题:

--楼主我帮你解答
--楼主这个只是一个简单的脚本 不是存储过程
--然后你声明的变量 和下面调用的变量不一样 肯定报错了
--declare 声明变量 是要赋给初始值的 否则也会报错
declare @ERRTYPE nvarchar(50)=''--这里是声明一个变量
select @ERRTYPE = sum(xx) from A
print (@ERRTYPE) --这里可以把变量值显示出来
--有什么问题可以随时找我 希望采纳

Ⅳ SQL存储过程定义的变量赋值问题

你都把字段值加起来了,那还要SUM()函数干嘛呢?直接写成wcfy:=select ZSF+QTFY+CCF+CCBZFY+WCRLF from LQSHDWCSQD where WCDH=dh_in;
就可以了(如果字段ZSF,QTFY,CCF,CCBZFY,WCRLF是在一条记录里的话 )。

Ⅵ Sql server 存储过程中怎么将变量赋值

/*
Sql server 存储过程中怎么将变量赋值
*/

--SQL赋值语句
DECLARE @test1 INT
SELECT @test1 = 111
SET @test1 = 222

--SQL函数赋值,假定count()是自定义函数
DECLARE @test2 INT
SELECT @test2 = COUNT(*) FROM sys.sysobjects

--SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)
IF OBJECT_ID('sp_test') IS NOT NULL DROP PROCEDURE sp_test
GO
CREATE PROCEDURE sp_test(@test INT OUTPUT)
AS
BEGIN
SELECT @test = 999
END
GO

DECLARE @test3 INT
EXEC sp_test @test3 OUTPUT
SELECT @test3

DROP PROCEDURE sp_test
GO

Ⅶ 存储过程参数赋值问题

你这个SQL打印下来,应该是....where BName=ad ,BName是字符型的,所以要改成...where BName='ad' 试试。还有你的数据库用的是SQLServer还是Oracle,两种数据库对转义字符的写法略有不同

Ⅷ 存储过程赋值的问题

把该声明的声明下,declare @strSQL.....然后print @strSQL 从控制台拿出sql再一步一步的排错。类似:
declare @temp_str nvarchar(500)
set @......
print @temp_str
exec @temp_str

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:433
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:744
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:147
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:240
java驼峰 发布:2025-02-02 09:13:26 浏览:652
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726