今天在做統計資料的時候,傳入陣列導致資料不顯示。解決方式和大家分享一下:
--引數@companyname='北京,天津,上海'
declare @pointerprev int
declare @pointercurr int
declare @tname nvarchar(100)
set @pointerprev=1
while (@pointerprev < len(@companyname))
begin
set @pointercurr=charindex(',',@companyname,@pointerprev)
if(@pointercurr>0)
begin
set @tname=substring(@companyname,@pointerprev,@pointercurr-@pointerprev)
--我們可以在這裡直接進行刪除或修改
delete from testa where name=@tname
--如果作為查詢條件,我需要建立乙個臨時表,將資料插入進去
--insert into #cnametable (name) values (@tname)
--insert into #cnametable (name) select name from testname where name like '%'+@tname+'%'
--這裡的testname 表中數劇量大時會降低查詢速度,建議大家用其他方式處理,例如指標、重新拼接字串等
set @pointerprev = @pointercurr+1
end
else
break
end
--因為最後乙個後面沒有逗號,所以在迴圈中跳出,需另外再刪除
set @tname=substring(@companyname,@pointerprev,len(@companyname)-@pointerprev+1)
delete from testa where name=@tname
oracle 向儲存過程傳入陣列型別引數
最近想試試給儲存過程傳陣列引數,破費周折,在這裡與大家分享下 我用的plsql,開啟plsql,在type目錄下面,可以建立自定義的資料型別,於是用 create or replace type tab str as table of varchar2 30 建立了乙個陣列型別。接著用儲存過程 pr...
oracle儲存過程傳入in引數,返回結果集
create or replace procedure proc report test zhxshss in varchar2,pcursor out sys refcursor asbegin open pcursor for select from sys user t where t.id ...
傳入和傳出引數的MYSQL儲存過程
下文為您介紹的是php呼叫mysql儲存過程中呼叫傳入引數的儲存過程及傳出引數的儲存過程這兩種情況,該呼叫方法供您參考,希望對您有所幫助。傳入引數的mysql儲存過程 sql create procedure myproce2 in score int begin if score 60 then ...