sqlin傳參數
『壹』 sql語句中使用關鍵字in,該如何傳遞參數
請將參數拼接到sql腳本中,不然你直接的結果不是你想要的哦!
例:
declare@avarchar(100)
set@a='34,12,335'
declare@sqlvarchar(max)
set@sql='select*fromtableNamewherekeyIdin('+@a+')'
print(@sql)
exec(@sql)
請試一試,如有疑問,及時溝通!
『貳』 什麼叫「帶有IN參數或不帶有IN參數的 SQL 語句」,IN參數怎麼理解
in參數是指在寫存儲過程時參數的類型,in參數是傳入類型,out參數是傳出類型,in out既能傳入也能傳出
『叄』 C#中如何使用 in 傳遞sql語句參數
不可以,in使用參數時會強制轉換參數類型與條件欄位一致,不支持構造字元串(如果欄位本身為varchar、char型,則in相當於只有一個條件值,而不是一組)
你可以使用exec,把整個sql當做參數來執行,如
exec( 'SELECT * FROM table WHERE id IN ( '+@ids+ ') ')
但是我感覺這樣實際上和直接構造sql語句沒區別,起不到防注入作用
『肆』 oracle plsql in list作為參數怎麼傳
假設第一個參數為in參數,每二個參數為out參數:
variable
x
number;
//定義一個綁定變數
exec
過程(1,:x)
//1為輸入參數,x為輸出參數,過程執行後x就得到輸出值了。
print
x
//看結果
『伍』 JDBC SQl 語句 IN 參數的格式是什麼
IN 操作符允許我們在 WHERE 子句中規定多個值。
SQL IN 語法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
例子:
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
IN 操作符實例
現在,我們希望從上表中選取姓氏為 Adams 和 Carter 的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
結果集:
Id
LastName FirstName Address City
1 Adams John Oxford Street London
3 Carter Thomas Changan Street Beijing
『陸』 MSSQL資料庫 :如何給 存儲過程中的 IN() 傳遞參數,誰能夠幫忙修改一些。
中的項不固定大小,應該選一個足夠大的值,varchar(1000)
CREATE PROCEDURE [dbo].[Stat_MultiplesLoadByUnionAll]
( @Cells nvarchar(255),@name1 varchar(1000) )
as
begin
if (@name1 <>'' or @name1 is not null)
begin
select @UnionTable=isnull(@UnionTable+' union all select '+@Cells+' from ',' select '+@Cells+' from ) +quotename(Name) from sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 and name in (' + @name1 =')'
end
end
--注意@name1 傳入的格式 是'tab1','tab2','tab3'................ 這樣的,才能拼對
『柒』 sql in 參數
@string--參數改為"1,2,3",可用like \patindex\charindex處理
--如:
select * from tableName where ','+@string+',' like '%,'+rtrim(a)+',%'
『捌』 我有個SQL in 使用參數傳遞怎麼弄
declare @sql varchar(2000)
declare @param varchar(2000)
set @sql = 'select * from table where col in (' + @param + ')'
exec (@sql)
『玖』 oracle plsql in參數作為 list 調試的時候怎麼傳
方法/步驟
首先在PL/SQL的左側資源欄中展開Proceres項(圖中位置1),然後再其上面的搜索框中(圖中位置2)輸入存過名稱的關鍵詞,按回車鍵搜索要調試的存過,不停的回車,直到找到想要調試的存過。
找到想要調試的存過,左鍵單擊選中該存過(圖中位置1),然後右鍵單擊該存過,從彈出菜單中選擇「Test」項(圖中位置2)。
單擊「Test」後,PL\SQL會打開調試界面,圖中位置1的按鈕就是開始調試的按鈕,在調試之前要填寫存過的參數,位置2就是填寫參數的地方,如果有多個參數,會有多行參數框,按參數名填寫相應的參數即可。
填寫完參數,單擊開始調試按鈕後,調試的界面會發生一些變化。圖中位置1的變化,說明存過已經處於執行狀態,別人不能再編譯或者執行。位置2的按鈕就是執行按鈕,單擊這個按鈕存過會執行完成或者遇到bug跳出,否則是不會停下來的,調試時不會用這個按鈕的。位置3的按鈕才是關鍵——單步執行,就是讓代碼一行一行的執行,位置4的按鈕是跳出單步執行,等待下一個指令。
單擊「單步執行」,存過開始單步執行。界面中每一次執行的代碼會高亮顯示(圖中位置1),如果想要看某個變數具體的值,就在位置2的地方輸入該變數名,然後變數的值會顯示在位置3的地方。
調試的時候,每一次單步執行的時候要記一下執行代碼的行數,圖中位置3的數字就是當前執行代碼的行數,就是第幾行。如果過程單步執行到某行後,再單步執行的時候,存過就退出,那麼錯誤就在該行的下一行。
代碼執行到24行,在往下執行時,直接轉到exception的地方,也就是異常處理的部分。
這說明我們代碼中的錯誤在24和25行上,我們打開存過,瀏覽到24行和25行附近,發現25行和24行使用了兩個變數,記住那兩個變數。重新開始調試過程。
單步的執行時候把剛才那兩個變數名填寫到變數查看框,一邊觀察變數值變化,一邊單步執行,執行到24行的時候,發現一個變數已經有值了,而另一個變數的值為null。錯誤原因明朗了吧?就是變數沒有賦值或者初始話,給該變數賦值後存過就不報錯了。
『拾』 oracle 存儲過程sql中in 參數怎麼傳入調試
右擊存儲過程,選擇
測試create
or
replace
procere
pd1(p_1
number,p_2
number,p_3
number)
is
v_sql
varchar2(4000);
begin
v_sql:='select
*
from
table
where
id
in('||p_1||','||p_2||','||p_3||')';
execute
immediate
v_sql;
end;