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 カウントオフを設定 終わり 行く
私がネイティブに知っていることはありません。システムテーブルをクエリしてオブジェクトのリストを取得するプロシージャをロールし、カーソルを通過させて、指定された検索条件についてそれらのオブジェクトをクエリすることができます。