存儲過程包含字元串
A. 關於存儲過程的引號,頭暈了
這個引號 主要是看你的參數具體的值
你上面所舉的例子,在我看來可能是你理解錯了,注意你的引號到底是加上什麼位置
你這里的語句補全後,大致應該是這樣的:
'xxxxx' + @N + 'zzzzz'
假設@N = 'yyyyy' 時,拼接後就是 xxxxxyyyyyzzzzz
3引號的情況:
'''xxxxx''' + @N + '''zzzzz'''
仍然讓@N = 'yyyyy',拼接後就是 'xxxxx'yyyyy'zzzzz'
1個引號時,就是表示所轄內容為字元串
3個引號時,第一個表示字元串前引號,第二個是轉義字元,第三個表示引號(字元內容)
B. 關於存儲過程中執行字元串
alter
proc
[dbo].[fun_query_pm]
@ii_pm_name
varchar(20)
as
begin
declare
@where
varchar(20)
begin
set
@where
=
'missaka'
set
@where
=
@where
+
@ii_pm_name
print
@where
print
@ii_pm_name
end
end
exec
p_test
'10011'
你把char換成varchar就可以顯示了,這主要是char是固定長度,當set
@where='misaka'時,
實際上@where中的位元組段已經填滿,後面空的被空格字元填滿,所以當你再進行連接的時候就沒位置連了,
當然不能連接了。用varchar就不會了
C. 如何查詢存儲過程中含有指定字元串的過程的相關推薦
啥資料庫,,,,
知道sqlserver可以這樣查詢
selectobj.name存儲過程名,sc.text過程內容
fromsyscommentssc
innerjoinsysobjectsobjonsc.id=obj.id
wheresc.textlike'%欄位名(這里你看著寫了,,是你說的字元串還是欄位名還是過程函數名都可以)%'
D. sql存儲過程 字元串包含子字元串
400千克
E. Oracle 查詢搜索字元串在哪些存儲過程中包含
如下:
select *
from all_source
where OWNER = 'LC0019999'
and TEXT like '%insert into%d values(%'
F. Oracle中怎樣用存儲過程將一段字元串以逗號為界截取,並將得到的子串存到另一張表中
G. oracle中用存儲過程加密一段字元串有哪些方法
可以例用Oracle 自帶的Wrap工具實現,此工具在$ORACLE_HOME/BIN目錄下,具體如下
1、設置字元集環境變數
set NLS_LANG=CHINESE_CHINA.ZHS16GBK
2、創建一個存儲過程文件
在E:\下創建test.sql文件,內容如下:
create or replace procere test1(i in number) as
begin
dbms_output.put_line(' 輸入參數是'||to_char(i));
end;
3、加密
c:\> cd %ORACLE_HOME%\BIN
c:\>wrap iname=e:\test1.sql
PL/SQL Wrapper: Release 8.1.7.0.0 - Proction on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000.All Rights Reserved.
Processing test1.sql to test1.plb
4、運行test1.plb
sqlplus /nolog
SQL>conn TEST/TEST@db01
SQL> @e:\a.plb
過程已創建。
5、運行存儲過程
SQL> set serveroutput on
SQL> execute test1(1);
輸入參數是1
PL/SQL 過程已成功完成。
6、查看存儲過程的代碼
SQL> select name,text from all_source where type='PROCEDURE' and name='TEST1';
H. sqlserver快速查找所有存儲過程中是否包含某
在sql server中快速查看存儲過程中的內容是否包含特殊的字元,如下所示:
mssql-查找存儲過程包含的字元串
主要根據兩張系統表,查找出存儲過程中的內容
請採納,如有疑問,及時溝通!
I. sql查詢資料庫中哪些存儲過程包含指定字元串
selectb.name,a.text
fromdbo.syscommentsaleftjoindbo.sysobjectsb
ona.id=b.idwhereb.xtype='p'anda.textlike'%存儲過程內容%';
請採用以上sql腳本
J. 如何查詢所有資料庫中包含某一字元串的存儲過程。是所有資料庫,不是當前資料庫。
假定你是要查詢同一伺服器上同一實例上的若干資料庫,基本思路就是先找到當前實例上的所有資料庫集合,然後再根據這些資料庫集合去獲取每個集合對應的存儲過程集合。因為你這邊未提供具體資料庫語言,這里已MSSQL為例,具體實現過程如下(假定你需要搜索字元串為【資料庫】):
declare@sqlnvarchar(2000)
declare@dbnamevarchar(20)
declare@pnamevarchar(100)
createtable#tmptb(dbnamevarchar(20),pnamevarchar(100))
declaremycurcursorfor
selectnamefrommaster.dbo.sysdatabaseswheredbid>4
openmycur
fetchnextfrommycurinto@dbname
while@@FETCH_STATUS=0
begin
set@sql='selectdistinct'''+@dbname+'''asdbname,a.nameasprocnamefrom'+@dbname+'.dbo.sysobjectsainnerjoin'+@dbname+'.dbo.syscommentsbONa.id=b.idwherea.xtype=''P''andb.[text]LIKE''%資料庫%''orderbya.name'
insertinto#tmptb(dbname,pname)exec(@sql)
fetchnextfrommycurinto@dbname
end
closemycur
deallocatemycur
select*from#tmptb
droptable#tmptb
go
當然,具體應用時你可以創建一個存儲過程,存儲過程定義一個入參【待匹配字元串】,如果有需要的話也可以定義一個出參【查找到的集合】,以實際需要靈活調整就可以了。