2017-03-24 1 views
-1

テキストファイルを読み込んで(clobデータ型を使用して)そのデータをテーブルに格納します。ロードされたデータの文字列比較を行いたいpl/sqlを使用してテキストファイルを読み込み、各行の文字列検索を行う方法

ロードされたテキストファイルにはDDLスクリプトが含まれており、新しい/変更されたテーブル、新しい/変更されたインデックス、および制約の分離が必要です。トムは

私はここに直面してるの挑戦は、私はそれらのスクリプトを実行する前に、細部の上に取得する必要があります、ということですAsk tom articleを示唆したように、これを行うことができる

は、そうでなければ、スキーマの変更を監査するために、いくつかのDDLトリガーを使用しているだろう。

私の質問は、大文字の文字列比較を実行するのは可能でしょうか?またはより良い選択肢があります。これについてあなたの意見やアイデアを共有してください。

例は、新しく作成されたインデックスとして私はtable_one、変更された表としてtable_twoを取得したいコードの上から

Create table table_one 

Alter table table_two 

create index index_table_one_idx table_one (column_one) 

etc etc... 100s of statements 

、およびindex_table_one_idxを提出します。

私は 'create table'、 'alter table'文字列を大きなテキストファイルで探し、部分文字列を使ってテーブル名を取得したいと考えています。

+1

これは多くの作業が必要です。あなたは、単純なタスク(テキストファイルの読み込み、CLOB内のテキストの保存など)の中で課題を分割し、次にあなたの仕事を行い、あなたの本当に立ち往生した特定の問題に戻ってくることができます。ここでは、私たちにあなたの仕事を依頼するようです。 –

+0

次の質問をする前にhttp://stackoverflow.com/help/how-to-askをお読みください。 –

+0

私はあなたが質問を理解していないと思う。私はここに私の分析を入れて、後で質問した。回答することを喜んでいるユーザーから複数の説明を避けるために。あなたが答えを知らない場合は、移動してください。 –

答えて

0

大文字の文字列比較は完全に実行可能です。

いくつかのアプローチがあります。 1つは、ファイルを行ごとにUTL_FILEを使用して読み込むことです。もう1つの言葉は、それを一時的なCLOBにロードし、それをチャンクで処理することです。おそらく2番目の方法は、より良い選択肢です。文字列操作にはDBMS_LOB関数を使用するようにしてください。文字列操作が機能するためです。 Find out more

あなたの主な問題は仕様です。 SQL文のすべての異なる開始点を分離する必要があります。あなたのスクリプトがCREATE、ALTER、DROPと同じようなものであれば、どれだけの詳細情報が必要なのか(オブジェクトタイプの抽出?オブジェクト名の抽出など)と、追加の処理が何であるかに応じて難しくありません。

スクリプトにDML文が含まれていると、タスクがより困難になります。 DDLにプログラムオブジェクト(TYPE、PACKAGEなど)が含まれている場合は、それは一層難しくなります。

+0

ありがとう...私のスクリプトには、テーブル、制約、インデックスを変更/作成するDMLのみが含まれています。テーブルが後で変更された場合は、変更されたカラム名、インデックス、制約を取得します。 –

関連する問題