ORACLEは、データベーステーブルを作成するタイミングについて(再生)

ステップ1:ストアドプロシージャの実行の作成作成し
、この最初のステップで解決すべき課題は、テーブル名を構築することです。Oracle形式では、出力時間は、例えば、TO_CHAR関数で処理することができる:
SQL> SELECT TO_CHAR(SYSDATE、 'YYYY / MM / DD HH24:MIザ:SS')デュアルから、
TO_CHAR(SYSDATE、「YYYY / MM / DDHH2を
- ----------------------------- 
2009年2月14日17時22分41秒
より多くのSQL形式の出力時に、私たちを取得します直接SQLを変更するために必要なフォーマット
デュアルからSQL> SELECT TO_CHAR(SYSDATE、 'YYYYMMDD')を、
TO_CHAR(SYSDATE、 'YYYYMMDD')
------------------ --------- 
20090214 
我々は時間フォーマット文字列のプレフィックスとタイムテーブルを取得した後、テーブル名の完全な名前を形成するために一緒に結合することができる。
  リンクは「Oracleで2つの文字列を必要とすることに留意すべきです||「シンボル、および内のSQL Serverで直接使用する」私はSQL Serverの前にプログラミングしてきたので、長い時間のためのOracleのSQLはそう書いていない、その上に+」記号は、問題を見つけるために多くの労力を費やしました。完全なSQLがある SQLは>デュアルから'tbl_programme_' || TO_CHAR(SYSDATE、 'YYYYMMDD')を選択します。 'tBL_PROGRAMME_' || TO_CHAR(SYSD ------------------------------ tbl_programme_20090214 次のステップでは、新しいテーブルがtbl_programme一貫性を必要とするため、符号表を作成するので、直接次のようにコードに理想的に適しているテーブルを作成するためのCTASは次のとおりです。 tbl_programmeからSELECT * ASテーブルテーブル名を作成する あなたはSQLを指定する必要がある場合は、表領域が適切な変更を行います: tbl_programmeからSELECT * ASテーブルテーブル名TABLESPACE P2Pを作成し 、全体のストアドプロシージャを作成しますので、 SQLは、 作成または手順sp_createtab_tbl_programme置き換え AUTHID CURRENT_USER AS TABNAME VARCHAR(200ですが); 開始 ;デュアルからtabnameのINTO SELECT 'TBL_PROGRAMME_' || TO_CHAR(SYSDATE 'YYYYMMDD')を 表から--createはAS SELECT TABNAME * WHERE tbl_programme 1。! 。1 =; 'テーブルの作成'即時実行|| || tabnameの'TABLESPACEのP2PをAS SELECT * WHERE tbl_programmeから= 1. 1。!'; コミット; 終了; / また、その後、あなたは変数に値を代入したい場合はどのOracleの2つの方法を見てする必要がありますがあります: (1 )を使用して:=割り当てを (2)からTABNAME変数名に選択「xjkxj」を使用し 、前述の添加後に開始する、ように配置された一般的なプロセスに格納された変数の定義/です。
  一般的に、あなたが達成するために実行される即時+ SQL文をexcuteしなければならないこれらのステートメントを使用したい場合は、ステートメントに類似しているテーブルを切り捨て、ストアドプロシージャでテーブルを作成する直接使用することはできません。 AUTHID CURRENT_USER:赤い旗を持つ上記のステートメントがあることに注意してください テーブルの権限を作成など、ストアドプロシージャが成功しないときのデフォルトは、ストアドプロシージャにはないので、我々は、行ってストアドプロシージャを作成するには、このステートメントを追加していない場合は、この文は、より重要です現在のユーザーは、DBA権限を持っている場合でも操作は、ストアドプロシージャがあるテーブルを作成した場合、あなたはこの問題を解決するための二つの方法を持つことができ、動作しません。
   (1)ユーザ・ディスプレイは、権限のテーブルを作成し、ユーザにテーブルを作成付与与えます。 (2)現在のユーザの記憶された識別AUTHID CURRENT_USER処理権限を使用。 ステップ2:ジョブを作成 JOBが比較的簡単作成、次のコードは、JOBを作成することです sp_createtab_tbl_programmeストアドプロシージャを実行し、開始時間を毎晩1つの電気の仕事を。
   ナンバーはVARIABLEをtestjobid; 開始します SYS。DBMS_JOB。提出(:testjobid、 'sp_createtab_tbl_programme;'、TRUNC(SYSDATEは+ 1)+ 1/24 'TRUNC(SYSDATEは+ 1)+1/24。'); COMMIT; END; / ジョブが最初の変数は、メソッドの前に提出定義しなければならないことに留意すべきである、さらに、第二のパラメータは、メソッドの名前は、ストアドプロシージャを送信している、覚えた後に添加「:」いいえ、時間NEXT_DATEで文字列ではなく変数の型は、この引数は引用符を必要としない、それを文字列として捉えないように注意する必要があります。
  最後のパラメータ間隔は、文字列型である引用符を追加することを忘れないでください。次に示す最も一般的なエラー: ORA-01008:すべての変数がバインドされていない変数は意味が定義されていません。心の中でいくつかの定義は、メソッドを提出JOBID変数を使用した場合。

おすすめ

転載: www.cnblogs.com/yfssss/p/11571536.html