Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

InterSystems SQL のインポート

InterSystems SQL のインポート

以下のいずれかの %SYSTEM.SQL.SchemaOpens in a new tab メソッドを使用して、InterSystems SQL コードをテキスト・ファイルからインポートできます。

  • ImportDDL()Opens in a new tab は汎用の SQL インポート・メソッドです。このメソッドは、バックグラウンド (非インタラクティブ) プロセスとして実行されます。InterSystems SQL をインポートするには、3 つ目のパラメータとして “IRIS” を指定します。

  • Run()Opens in a new tab は InterSystems SQL インポート・メソッドです。このメソッドは、ターミナルからインタラクティブに実行されます。ターミナルでは、インポート・テキスト・ファイルの場所や、Errors.log ファイルと Unsupported.log ファイルを作成する場所などの情報を指定するように求められます。

Note:

この SQL DDL コードのインポートと実行を、管理ポータルの SQL インタフェースの [文のインポート] アクションと混同しないでください。この操作では、SQL 文を XML 形式でインポートします。

次の例では、InterSystems IRIS SQL コード・ファイル・パス名 mysqlcode.txt をインポートして、そのファイルにリストされている SQL コマンドを現在のネームスペース内で実行します。

  DO $SYSTEM.SQL.Schema.ImportDDL("c:\InterSystems\mysqlcode.txt",,"IRIS")

既定では、ImportDDL() は 2 つ目のパラメータで指定されたとおりに、エラー・ログ・ファイルを作成します。この例では、2 つ目のパラメータを省略して、既定で mysqlcode_Errors.log という名前のファイルが SQL コード・ファイルと同じディレクトリ内に作成されます。このログ・ファイルは、ファイルに書き込む内容がない場合でも作成されます。

ターミナルから ImportDDL() を実行すると、次の例に示すように、まず入力ファイルがリストされ、次にエラー・ログ・ファイル、その次にインポートされた各 SQL コマンドがリストされます。

Importing SQL Statements from file: c:\InterSystems\mysqlcode.txt
 
Recording any errors to principal device and log file: c:\InterSystems\mysqlcode_Errors.log

 SQL statement to process (number 1):
     CREATE TABLE Sample.NewTab (Name VARCHAR(40))
      Preparing SQL statement...
      Executing SQL statement...
  DONE
 
  SQL statement to process (number 2):
     CREATE INDEX NameIDX ON Sample.NewTab (Name)
      Preparing SQL statement...
      Executing SQL statement...
  DONE
 
Elapsed time: 7.342532 seconds

SQL コマンドでエラーが発生した場合、ターミナルに以下の例のようなエラーが表示されます。

SQL statement to process (number 3):
       INSERT INTO Sample.MyStudents (StudentName,StudentDOB) SELECT Name,
       DOB FROM Sample.Person WHERE Age <= '21'
    Preparing SQL statement...
ERROR #5540: SQLCODE: -30 Message:  Table 'SAMPLE.PERSON' not found
       Pausing 5 seconds - read error message!  (Type Q to Quit)

5 秒以内に終了しない場合、ImportDDL() は次の SQL コマンドを実行します。エラー・ログ・ファイルにエラーがタイムスタンプ、ユーザ名、ネームスペース名と共に記録されます。

インポート・ファイル形式

SQL テキスト・ファイルは、.txt ファイルなどの書式なしファイルである必要があります。各 SQL コマンドはそれぞれ新しい行で始まる必要があります。1 つの SQL コマンドを複数の行に分けることができ、インデントが許可されています。各 SQL コマンドの後ろには、GO 文をそれぞれの行に記述する必要があります。

以下は、有効な InterSystems SQL インポート・ファイル・テキストの例です。

  CREATE TABLE Sample.MyStudents (StudentName VARCHAR(32),StudentDOB DATE)
GO
  CREATE INDEX NameIdx ON TABLE Sample.MyStudents (StudentName)
GO
  INSERT INTO Sample.MyStudents (StudentName,StudentDOB) SELECT Name,
  DOB FROM Sample.Person WHERE Age <= '21'
GO
  INSERT INTO Sample.MyStudents (StudentName,StudentDOB) 
          VALUES ('Jones,Mary',60123)
GO
  UPDATE Sample.MyStudents SET StudentName='Smith-Jones,Mary' WHERE StudentName='Jones,Mary'
GO
  DELETE FROM Sample.MyStudents WHERE StudentName %STARTSWITH 'A'
GO

サポートされている SQL コマンド

すべての有効な InterSystems SQL コマンドをインポートできるわけではありません。以下は、サポートされている InterSystems SQL コマンドのリストです。

  • CREATE TABLEALTER TABLEDROP TABLE

  • CREATE VIEWALTER VIEWDROP VIEW

  • CREATE INDEX (ビットスライスを除くすべてのインデックス・タイプ)

  • CREATE USERDROP USER

  • CREATE ROLE

  • GRANTREVOKE

  • INSERTUPDATEINSERT OR UPDATEDELETE

  • SET OPTION

  • SELECT (オプティマイザ・プラン・モード専用)

FeedbackOpens in a new tab