在SQL儲存過程中給條件變數加上單引號

2021-09-07 06:29:30 字數 726 閱讀 8617

在sql儲存過程中給條件變數加上單引號,不加語句就會出問題,以下就是在儲存過程中將條件where設定成了動態變化的,給where賦完值再和前面的語句拼接,再execute(sql)

set

@where='

(datediff(day,

'''+

convert(varchar(100), @d_start, 23)+

''',sdate)>=0 and datediff(day,

'''+

convert(varchar(100), @d_end, 23)+

''',sdate)<=0) and '+

'shopid=

'''+

@shopid

+'''

and venderid in '+

'(select vender from tableb where vendertype=

''型別

''and shopid=

'''+

@shopid

+''')'

--何問起 hovertree.com

@d_start   @d_end,

@shopid  

這三個都是呼叫儲存過程傳進來的引數,要將這些與varchar型別的拼接在一起就要用每邊3個單引號+變數, eg: where shopid='''+@shopid+''' 這樣寫才可以。

推薦:

動態sql在儲存過程中的實現

這種情況下,如何轉為儲存過程呢?以上面的兩個動態為例,在儲存過程中實現如下 create or replace procedure my procedure1 tablename in varchar2,studentname in varchar2,my cursor1 out my proced...

oracle 在儲存過程中定義動態sql

表結構 create table item prop pid integer,name varchar2 20 is key prop integer,is sale prop integer,is color prop integer,parent pid integer,parent vid v...

通過游標在SQL儲存過程中迴圈

今天有個需求要寫乙個儲存過程,需要從乙個表中讀取資料到另外乙個表中,由於是很多行的資料,所以需要迴圈,我琢磨了一下,使用了游標,至於使用游標的好壞,還請大家指點,先建立兩個測試表吧 create table testa id intidentity userchname nvarchar 50 us...