LOAD SQL (SQL)
構文
LOAD SQL FROM FILE filename
[ DIALECT language ]
[ DELIMITER delim ]
[ VERBOSE ]
[ LOG TO FILE [ logfile ] ]
[ IGNORE ERRORS ]
LOAD SQL FROM DIRECTORY dir [ RECURSE ]
[ DIALECT language ]
[ DELIMITER delim ]
[ VERBOSE ]
[ LOG TO FILE [ logfile ] ]
[ IGNORE ERRORS ]
説明
LOAD SQL コマンドは、SQL 文を含む 1 つ以上のファイルをインポートして、リストされたコマンドを順番に実行します。このコマンドを使用すると、エクスポートしたリレーショナル構造をあるシステムから別のシステムに簡単かつ効率的にロードできるほか、INSERT 文を使用してリレーショナル構造にデータを挿入することができます。これらの文は、単一のファイルから、またはディレクトリ (サブディレクトリを含む場合がある) に含まれるファイル群からロードできます。このコマンドは ORACLE などのさまざまな SQL 言語をサポートしているため、InterSystems IRIS への移行時にはこのコマンドを使用することをお勧めします。
LOAD SQL でインポートできるコマンドは以下のとおりです。
-
CREATE TABLE、ALTER TABLE、DROP TABLE
-
CREATE VIEW、ALTER VIEW、DROP VIEW
-
CREATE INDEX (ビットスライスを除くすべてのインデックス・タイプ)
-
CREATE USER、DROP USER
-
CREATE ROLE
-
GRANT、REVOKE
-
INSERT、UPDATE、INSERT OR UPDATE、DELETE
-
SET OPTION
-
SELECT (オプティマイザ・プラン・モード専用)
既定では、%SQL_Diag.Result ログに、ロードが成功したかどうかを示すメッセージが保存されます。
VERBOSE オプションを指定すると、ログ・ファイルに書き込まれる情報がターミナルにも書き込まれます。
IGNORE ERRORS オプションを指定すると、個々の文の実行が失敗した場合でも、ファイル内のすべての文が処理されます。このオプションを省略すると、LOAD SQL コマンドでは、ファイル内で実行に失敗した最初の文で失敗します。
引数
filename
ロードするファイルを指定するルート・ディレクトリからのパス。一重引用符 (') で区切ります。
filename で指定するファイルは、.txt ファイルなどの書式なしファイルである必要があります。各 SQL コマンドは、それぞれ独自の行で開始する必要がありますが、コマンドは複数の行に分割し、指定の delimiter で区切ることもできます。
language
ロードされた文が書き込まれる言語。可能な値は、IRIS、CACHE、FDBMS、INFORMIX、INTERBASE、MSSQLSERVER、MSSQL、ORACLE、SYBASE です。
delim
ロードされたファイル内で文を区切るために使用される文字。
delim を指定しない場合、既定の区切り文字は、language で指定される言語で決まります。特に、言語が INFORMIX、INTERBASE、ORACLE の場合、既定の区切り文字は ; になります。言語が IRIS、CACHE、SYBASE、MSSQL の場合、既定の区切り文字は GO になります。
logfile
文のロード時に発生した問題のログ記録に使用されるファイルの名前。
logfile を指定しない場合、ログは %SQL_Diag に保存され、filename と同じディレクトリに保存されるファイルに書き込まれます。このファイルは、filename からファイル拡張子を除き、_Errors.log を末尾に追加した名前になります。例えば、入力ファイルが sampleddl.txt の場合、ログ・ファイルの名前は sampleddl_Errors.log となり、sampleddl.txt と同じディレクトリに保存されます。
dir
ルート・ディレクトリから、ロードするファイルを含むディレクトリまでのパス。
RECURSE キーワードを指定すると、指定したディレクトリのサブディレクトリに保存されているファイルもロードされます。
例
以下の例は、LOAD SQL コマンドを使用して、exported_ddl.sql ファイルから INFORMIX 言語の DDL をロードする方法を示しています。ロードされたファイルのコンテンツは、Loaded File タブで確認できます。
LOAD SQL FROM FILE 'C:/stored/exported_ddl.txt'
DIALECT IRIS
LOG TO FILE 'C:/logs'
IGNORE ERRORS
CREATE TABLE Sample.Students (StudentName VARCHAR(32),StudentDOB DATE,FavoriteClass VARCHAR(16))
GO
CREATE INDEX FavClassIdx ON TABLE Sample.MyStudents (FavoriteClass)
GO
CREATE TABLE Sample.Teachers (TeacherName VARCHAR(32),TeacherDOB DATE,Subject VARCHAR(16))
GO
CREATE INDEX SubIdx ON Sample.Teachers (Subject)
GO
INSERT INTO Sample.Students (StudentName,StudentDOB,FavoriteClass) VALUES ('John Doe',TO_DATE('01 JAN 1999'),'Spanish')
GO
INSERT INTO Sample.Teachers (TeacherName,TeacherDOB,Subject) VALUES ('Jane Doe',TO_DATE('02 FEB 1970'),'Calculus')