存儲過程賦值
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