DB内でいくつかの文字列を見つける必要がある場合がありますが、通常はホスト名またはIPアドレスです。
アクセスできるすべてのSybasedbオブジェクト(または少なくともすべてのテーブル)で文字列を検索するスクリプトはありますか。
sysobjects+カーソル+EXECUTEのクエリは機能します。ちょっとちょっと。
sp__map_object'SELECT * FROM%O where name like "bar%"'、'foo_%'
コードには非常に多くのバグ/問題/心配があり、投稿するのは気が進まないのですが、Sybaseの仲間の被害者にはある程度同情しています。
Rob Verschoorは、 http: //www.sypron.nl/new_ssp_dwn.htmlに多数の優れたストアドプロシージャを持っています。
pjjH
289:1>?sp__map_object
(1行が影響を受けます)
/ *
*
*これを実行するときは注意してください!!!
*
*sp__map_db.sqlの悲惨な警告のリストを参照してください
*
*各オブジェクトのストアドプロシージャで指定されたコマンドを実行します
* @object_patを照合し、%Oの最初のインスタンスをそれで置き換えます
* 名前。
*
*これはPerlで行うだけです。または、SQLをリファクタリングして、正常に機能するようにします
*ユーザー、ログイン、データベース、オブジェクトの外積。
*
*ポール・ハリントン
*
* /
CREATE PROCEDURE sp__map_object
@sql VARCHAR(255)='sp__help'、
@objpat VARCHAR(32)= NULL、
@type VARCHAR(2)='U'、
@do_it INT = 1、
@verbose INT = 0
なので
始める
カウントをオンに設定
DECLARE object_cursor CURSOR
にとって
SELECTDISTINCT名
FROM sysobjects
WHERE名LIKE@objpat
ANDタイプLIKE@type
DECLARE @munged_sql VARCHAR(255)
DECLARE @object_name varchar(64)
OPEN object_cursor
FETCH object_cursor INTO @object_name
WHILE @@ sqlstatus = 0
始める
IF CHARINDEX('%O'、@sql)0
SELECT @munged_sql = SUBSTRING(@sql、1、CHARINDEX('%O'、@sql)-1)+
@object_name +
SUBSTRING(@sql、CHARINDEX('%O'、@sql)+ 2、255)
そうしないと
SELECT @munged_sql = @sql
IF(@do_it=0または@verbose=1)
始める
DECLARE @msg varchar(255)
SELECT @msg = @munged_sql
SELECT @msg
終わり
IF @do_it = 1
EXECUTE(@munged_sql)
FETCH object_cursor INTO @object_name
終わり
object_cursorを閉じる
DEALLOCATE CURSOR object_cursor
カウントオフを設定
終わり
行く
私がネイティブに知っていることはありません。システムテーブルをクエリしてオブジェクトのリストを取得するプロシージャをロールし、カーソルを通過させて、指定された検索条件についてそれらのオブジェクトをクエリすることができます。