Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
• | SQL言語のリファレンス DerbyのSQL言語のリファレンスです。
文、関数、そのほかの構文上の情報が書かれています。 | |
• | SQL予約語 SQL-92標準外の、SQLのキーワードを説明します。 | |
• | DerbyのサポートするSQL-92の機能 SQL-92の機能のうち、Derbyが実現しているものと実現していないものを一覧します。 | |
• | Derbyのシステム表 Derbyのシステムカタログのリファレンスです。 | |
• | Derbyの例外メッセージとSQL state Derbyの例外メッセージについての情報が書かれています。 | |
• | JDBC リファレンス Derbyが実装するJDBCのインターフェイスの情報がJDBC 2.0 の機能も含めて書かれています。 | |
• | データベース接続URLに属性を指定する。 DerbyのJDBCデータベース接続URLにおいて、実現されている属性の情報が書かれています。 | |
• | J2EEへの準拠:Java Transaction APIとjavax.sql インターフェイス Java Transaction APIにおいて、Derbyが実現している機能について書かれています。 | |
• | Derby API Derby独自のAPIについての説明があります。 |
• | 二重引用符でSQL-92に定義されている特殊識別子をデリミトして、デリミトされた識別子とすることができます。 | |
• | 一重引用符で文字の列を区切ることができます。 | |
• | 文字の列にて一重引用符またはアポストロフィーをあらわすには、一重引用符を2つ並べます。(言い方を変えれば、一重引用符は一重引用符のエスケープ文字です。) 二重引用符にはエスケープ文字が必要ではありません。二重引用符をあらわすには、単に二重引用符を使ってください。ただし、Javaのプログラムでは、二重引用符はバックスラッシュによるエスケープが必要であることを気に留める必要があります。 例:
| |
• | SQLのキーワードは大文字小文字を区別しません。例えば、SELECTというキーワードは、SELECT、Select、select、sELECTのいずれでも書くことができます。 | |
• | SQL-92の書き方による識別子は大文字小文字を区別しません。(SQL92識別子を参照してください。)ただしデリミトされた識別子はそうではありません。 | |
• | Javaの書き方による識別子は常に大文字小文字を区別します。 | |
• | *は、SelectExpression.にてワイルドカード文字です。ワイルドカードの*を参照してください。
この文字は同時に情報演算子でもあります。そのほかの場合この文字は、0回以上の繰り返しを表す、構文のメタ文字です。 | |
• | %と_は、LIKE演算子に続く文字の列にて使われると、ワイルドカード文字となります。(これはエスケープされなかった場合です。)詳細は真偽式を参照してください。 | |
• | SQL-92の仕様に沿って一行あるいは複数行のコメントを書くことができます。一行のコメントは二つのダッシュ(--)で始まり改行文字で終わります。複数行の改行は前後を囲う書き方で、スラッシュ・スター(/*)で始まり、スター・スラッシュ(*/)で終わります。この書き方では入れ子となる場合があることを留意してください。コメントの開始文字と終了文字の間にある、あらゆる文字は無視されます。 |
"A.B"
"A"."B"
• | 表の作成(CREATE TABLE 文) | |
• | カーソルの更新可能な列の特定 | |
• | SELECT式にある列の相関名(選択式を参照) | |
• | TableExpressionにある列の相関名 (TableExpressionを参照) |
という例にて、相関名をc11のcol1に使えません。なぜなら、 c11はFOR UPDATE に存在するからです。一方で相関名をc12に使うことができます。なぜなら、これはFOR UPDATEに存在しないからです。SELECT c11 AS col1, c12 AS col2, c13 FROM t1 FOR UPDATE of c11,c13
ij> CREATE TABLE mytable (mycol INT); 0 rows inserted/updated/deleted ij> INSERT INTO mytable VALUES (1), (2), (3); 3 rows inserted/updated/deleted -- この例ではijのprepareコマンドを使います。 -- このコマンドにより文が準備されます。 ij> prepare p1 AS 'INSERT INTO MyTable VALUES (4)'; -- p1はmytableに依存します; ij> execute p1; 1 row inserted/updated/deleted -- Derbyは再コンパイルせずに文を実行します。 ij> CREATE INDEX i1 ON mytable(mycol); 0 rows inserted/updated/deleted -- 新しい索引のため、p1は一時的に無効となります。 ij> execute p1; 1 row inserted/updated/deleted -- Derbyは自動的にp1を再コンパイルして、実行します。 ij> DROP TABLE mytable; 0 rows inserted/updated/deleted -- Derbyでは以下のように表を破棄することができます。 -- これはp1の結果が閉じているからです。 -- しかしながらp1は一時的に無効となります。 ij> CREATE TABLE mytable (mycol INT); 0 rows inserted/updated/deleted ij> INSERT INTO mytable VALUES (1), (2), (3); 3 rows inserted/updated/deleted ij> execute p1; 1 row inserted/updated/deleted -- p1は無効となっているので、Derbyは実行の前に再コンパイルを行います。 -- 再コンパイルは成功して、文は実行できます。 ij> DROP TABLE mytable; 0 rows inserted/updated/deleted -- p1は無効です。 -- 今度は最コンパイルしようとしても失敗するので、 -- 実行も失敗です。 ij> execute p1; ERROR 42X05: Table/View 'MYTABLE' does not exist.
• | 表に列を追加する。 | |
• | 表に制約を追加する。 | |
• | 表の列を破棄する。 | |
• | 表にある制約を破棄する。 | |
• | VARCHAR, CHAR VARYING, and CHARACTER VARYING 列の幅を増やす。 | |
• | 表に定義された行レベルのロックを上書きする。(あるいは上書きされた内容を破棄する。) | |
• | 識別子列の増分値や開始値を変更する。 | |
• | 列がNull可であるか否か変更する。 | |
• | 列の規定値を変更する。 |
ALTER TABLE 表名 { ADD COLUMN 列定義 | ADD CONSTRAINT節 | DROP [ COLUMN ] 列名 [ CASCADE | RESTRICT ] DROP { PRIMARY KEY | FOREIGN KEY 制約名 | UNIQUE 制約名 | CHECK 制約名 | CONSTRAINT 制約名 } ALTER [ COLUMN ] 列定義変更 | LOCKSIZE { ROW | TABLE } }
列名 SET DATA TYPE VARCHAR(integer) | column-name SET INCREMENT BY 定整数 | column-name RESTART WITH 定整数 | column-name [ NOT ] NULL | column-name [ WITH ] DEFAULT 既定値
CREATE TABLE tauto(i INT GENERATED BY DEFAULT AS IDENTITY, k INT) CREATE UNIQUE INDEX tautoInd ON tauto(i) INSERT INTO tauto(k) values 1,2
INSERT INTO tauto VALUES (3,3) INSERT INTO tauto VALUES (4,4) INSERT INTO tauto VALUES (5,5)
ALTER TABLE tauto ALTER COLUMN i RESTART WITH 6
• | 外部キーやチェック制約が既存の表に追加されるときDerbyは既存の行が制約に違反しないか、表を調べます。もしいずれかの行が制約に違反する場合、Derbyは例外を投げて制約は追加されません。 | |
• | 主キーに含まれるあらゆる列はnullでない値をとらなければならず、また一意でなければなりません。 ALTER TABLE ADD UNIQUEやPRIMARY KEYは、単一の列による主キーを定義する簡単な方法を提供します。もしPRIMARY KEYがCという列の定義に書かれたされた場合、これはPRIMARY KEY(C)という別の節に書いたのと同じです。列はnullの値をとってはならないので、NOT NULL属性も指定されなければなりません。 |
• | VARCHAR列の長さを増やすことができます。VARCHARというキーワードの代わりに、CHARACTER VARYINGやCHAR VARYINGを使うことができます。
これらの列の幅を増やすためには、データ型と新しいサイズを列名の後に書きます。 列の幅を減らしたり、データ型を変更したりする事はできません。主キーの一部や、外部キー制約から参照されている一意キー、外部キー制約の一部である列の幅は変更できません。 | |
• | 識別子列のとる連続した値の間隔を指定することができます。
識別子列のとる連続した値の間隔を設定するためには、定整数を与えます。あらかじめ列には識別子属性が与えられていなければなりません。(SQLSTATE 42837)もし表に既に行がある場合、列のSET INCREMENT defaultが加算された値は変更されません。 | |
• | 列のNullへの制約の変更
列がNullをとる事への制約を変更できます。
NOT NULL制約を既存の列に与えることができます。これを行う場合、既存のNULL値が表のその列に存在してはなりません。 NOT NULL制約を既存の列から取り除くことができます。これを行う場合、その列がPRIMARY KEYやUNIQUEの制約にて使われている列であってはなりません。 | |
• | 列の既定値を変更する |
-- 既存の表に列ごとの制約のある列を追加する。 -- 表に既存行があった場合、既存行の新列はNULLをとるので、 -- 例外が発生する。 ALTER TABLE CITIES ADD COLUMN REGION VARCHAR(26) CONSTRAINT NEW_CONSTRAINT CHECK (REGION IS NOT NULL); -- 既存の表に一意性制約を追加する。 -- 重複したキーがあった場合、例外が発生する。 ALTER TABLE SAMP.DEPARTMENT ADD CONSTRAINT NEW_UNIQUE UNIQUE (DEPTNO); -- Cities表に外部キー制約を追加する。 -- 行が制約を満たすか検証されて、 -- もし制約を満たさない行が見つかった場合、 -- 制約は追加されない。 ALTER TABLE CITIES ADD CONSTRAINT COUNTRY_FK Foreign Key (COUNTRY) REFERENCES COUNTRIES (COUNTRY); -- 主キー制約を表に追加する。 -- 最初に表が作成される。 CREATE TABLE ACTIVITIES (CITY_ID INT NOT NULL, SEASON CHAR(2), ACTIVITY VARCHAR(32) NOT NULL); -- もし主キーとした列にnullや重複した値がある場合、 -- この制約を追加することはできない。 ALTER TABLE Activities ADD PRIMARY KEY (city_id, activity); -- もし依存する情報が無ければ、city_id列が破棄される。 ALTER TABLE Cities DROP COLUMN city_id RESTRICT; -- 依存する情報と併せて、city_id列が破棄される。 ALTER TABLE Cities DROP COLUMN city_id CASCADE; -- CITIES表の主キー制約を破棄する。 ALTER TABLE Cities DROP CONSTRAINT Cities_PK; -- CITIES表の外部キー制約を破棄する。 ALTER TABLE Cities DROP CONSTRAINT COUNTRIES_FK; -- 既定値を1にとるDEPTNO列を追加する。 ALTER TABLE SAMP.EMP_ACT ADD COLUMN DEPTNO INT DEFAULT 1; -- VARCHAR型の列幅を増やす。 ALTER TABLE SAMP.EMP_PHOTO ALTER PHOTO_FORMAT SET DATA TYPE VARCHAR(30); -- 表のロック粒度を変更する。 ALTER TABLE SAMP.SALES LOCKSIZE TABLE; -- MANAGER列のNOT NULL制約を破棄する。 ALTER TABLE Employees ALTER COLUMN Manager NULL; -- SSN列にNOT NULL制約を追加する。 ALTER TABLE Employees ALTER COLUMN ssn NOT NULL; -- SALARY列の既定値を変更する。 ALTER TABLE Employees ALTER COLUMN Salary DEFAULT 1000.0
{ | LANGUAGE { JAVA } | EXTERNAL NAME 文字列 | PARAMETER STYLE パラメータの種類 | { NO SQL | CONTAINS SQL | READS SQL DATA } | { RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT } }
SELECT CONGLOMERATENAME FROM SYS.SYSCONGLOMERATES, SYS.SYSCONSTRAINTS WHERE SYS.SYSCONGLOMERATES.TABLEID = SYSCONSTRAINTS.TABLEID AND CONSTRAINTNAME = 'FLIGHTS_PK'
CREATE INDEX OrigIndex ON Flights(orig_airport); -- 金額は通常大きな値から小さな値の順で並べられるので、 -- 索引を降順で作成します。 CREATE INDEX PAY_DESC ON SAMP.EMPLOYEE (SALARY); -- 索引をより大きいページサイズで作成します。 call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize','8192'); CREATE INDEX IXSALE ON SAMP.SALES (SALES); call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize',NULL);
{ | [ DYNAMIC ] RESULT SETS INTEGER | LANGUAGE { JAVA } | EXTERNAL NAME string | PARAMETER STYLE JAVA | { NO SQL | MODIFIES SQL DATA | CONTAINS SQL | READS SQL DATA } }
CREATE SCHEMA { [ スキーマ名 AUTHORIZATION ユーザ名 ] | [ スキーマ名 ] | [ AUTHORIZATION ユーザ名 ] }
を指定できます。 derby.database.sqlAuthorization属性についてのより詳細な情報は、Derbyのチューニングを参照してください。AUTHORIZATION user-name
CREATE SCHEMA FLIGHTS AUTHORIZATION anita
CREATE SCHEMA EMP
CREATE SCHEMA AUTHORIZATION takumi
CREATE TABLE FLIGHTS.AVAILABILITY (FLIGHT_ID CHAR(6) NOT NULL, SEGMENT_NUMBER INT NOT NULL, FLIGHT_DATE DATE NOT NULL, ECONOMY_SEATS_TAKEN INT, BUSINESS_SEATS_TAKEN INT, FIRSTCLASS_SEATS_TAKEN INT, CONSTRAINT FLT_AVAIL_PK PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER, FLIGHT_DATE))
CREATE TABLE EMP.AVAILABILITY (HOTEL_ID INT NOT NULL, BOOKING_DATE DATE NOT NULL, ROOMS_TAKEN INT, CONSTRAINT HOTELAVAIL_PK PRIMARY KEY (HOTEL_ID, BOOKING_DATE))
• | INSERT | |
• | SELECT | |
• | REFERENCES | |
• | TRIGGER | |
• | UPDATE |
CREATE TABLE HOTELAVAILABILITY (HOTEL_ID INT NOT NULL, BOOKING_DATE DATE NOT NULL, ROOMS_TAKEN INT DEFAULT 0, PRIMARY KEY (HOTEL_ID, BOOKING_DATE)); -- 表で主キーを定義することで、2列からなる主キーを定義できます。 PRIMARY KEY (hotel_id, booking_date)) -- 識別子列の属性を、INTEGERの列に与え、 -- さらに列に主キー制約を定義します。 CREATE TABLE PEOPLE (PERSON_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY CONSTRAINT PEOPLE_PK PRIMARY KEY, PERSON VARCHAR(26)); -- 識別子列の属性を、SMALLINTの列に与え、 -- 初期値を5に増分値を5に設定します。 CREATE TABLE GROUPS (GROUP_ID SMALLINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 5, INCREMENT BY 5), ADDRESS VARCHAR(100), PHONE VARCHAR(15));
-- 既存の表の全列とデータ型を使って新しい表を作成する。 CREATE TABLE T3 AS SELECT * FROM T1 WITH NO DATA; -- 列に名前を指定して表を作成する。そのデータ型は既存表の列に沿ったものとする。 CREATE TABLE T3 (A,B,C,D,E) AS SELECT * FROM T1 WITH NO DATA; -- 列に名前を指定して表を作成する。そのデータ型は既存表の指定された列のデータ型に沿ったものとする。 CREATE TABLE T3 (A,B,C) AS SELECT V,DP,I FROM T1 WITH NO DATA; -- この例では問い合わせ式の結果にある列に名前がないが、そのデータ型は新規作成された表にて対応する列のデータ型となる。 CREATE TABLE T3 (X,Y) AS SELECT 2*I,2.0*F FROM T1 WITH NO DATA;
既定制約式: NULL | CURRENT { SCHEMA | SQLID } | USER | CURRENT_USER | SESSION_USER | DATE | TIME | TIMESTAMP | CURRENT DATE | CURRENT_DATE | CURRENT TIME | CURRENT_TIME | CURRENT TIMESTAMP | CURRENT_TIMESTAMP | literal
• | USER、CURRENT_USERやSESSION_USERを指定した場合、列の長さは少なくとも8である必要があります。 | |
• | CURRENT SCHEMAやCURRENT SQLIDを指定した場合、列の長さは少なくとも128である必要があります。 | |
• | 列が整数型である場合、既定値は整数のリテラルである必要があります。 | |
• | 列が10進の型である場合、既定値の桁数と精度は列のそれぞれの定義の範囲内である必要があります。 |
• | SMALLINT | |
• | INT | |
• | BIGINT |
GENERATED ALWAYSな識別子列に自動的に発番された値は一意です。また識別子列を作成しても、列に索引は作られません。create table greetings (i int generated always as identity, ch char(50)); insert into greetings values (DEFAULT, 'hello'); insert into greetings(ch) values ('bonjour');
GENERATED ALWAYS列とは異なり、GENERATED BY DEFAULTの列では一意性は保障されません。したがって、上記の例ではhiおよびsalutの行はどちらも同じ"1"という識別値を取ります。なぜなら、生成された列の値は"1"から始まり、ユーザが指定した値も"1"だったからです。重複を避けるために、情報のロードやインポートを行うときにテーブルを作成して、システムが自動生成するためのSTART WITHの値を与えてください。このような状況をチェックして、起きないようにするために、主キーや一意性制約をGENERATED BY DEFAULTの識別子列に使うことができます。create table greetings (i int generated by default as identity, ch char(50)); -- "1"を指定する: insert into greetings values (1, 'hi'); -- 生成された既定値を使う insert into greetings values (DEFAULT, 'salut'); -- 生成された既定値を使う insert into greetings(ch) values ('bonjour');
データ型 | 最大値 | 最小値 |
SMALLINT | 32767 (java.lang.Short.MAX_VALUE) | -32768 (java.lang.Short.MIN_VALUE) |
INT | 2147483647 (java.lang.Integer.MAX_VALUE) | -2147483648 (java.lang.Integer.MIN_VALUE) |
BIGINT | 9223372036854775807 (java.lang.Long.MAX_VALUE) | -9223372036854775808 (java.lang.Long.MIN_VALUE) |
CREATE TRIGGER トリガ名 { AFTER | NO CASCADE BEFORE } { INSERT | DELETE | UPDATE [ OF 列名 [, 列名]* ] } ON 表名 [ 参照節 ] [ FOR EACH { ROW | STATEMENT } ] [ MODE DB2SQL ] トリガされるSQL文
• | 前のトリガは文による変更が適用され制約による検証が行われる前に発火します。
前のトリガは、行のトリガあるいは文のトリガのいずれにもなることができます。(詳細は文のトリガと行のトリガを参照してください。) | |
• |
• | INSERT | |
• | UPDATE | |
• | DELETE |
REFERENCING OLD AS DELETEDROW
DELETE FROM HotelAvailability WHERE hotel_id = DELETEDROW.hotel_id
REFERENCING OLD_TABLE AS DeletedHotels
DELETE FROM HotelAvailability WHERE hotel_id IN (SELECT hotel_id FROM DeletedHotels)
• | 文のトリガ 文のトリガはトリガのイベント毎に一回発火します。トリガの発火に挿入・更新・削除にて何行が変更されたかは関係ありません。 | |
• | 行のトリガ 行のトリガはトリガのイベントが影響する行毎に一回発火します。影響が一行にも及ばなかった場合、トリガは発火しません。 |
• | 動的な引数(?)があってはなりません。 | |
• | トリガが定義されている表の作成や、変更、破棄を行ってはなりません。 | |
• | トリガが定義されている表への索引の作成や破棄を行ってはなりません。 | |
• | トリガが定義されている表へのトリガの作成や破棄を行ってはなりません。 | |
• | トランザクションのコミットやロールバック、分離レベルの変更を行ってはなりません。 | |
• | 前のトリガのアクションにINSERT/UPDATE/DELETE文があってはなりません。 | |
• | 前のトリガのアクションで更新を行う手続きを呼び出してはなりません。 |
• | 最初にNo Cascade Beforeなトリガのアクションを実行します。 | |
• | 次に、制約(主キー、一意キー、外部キー)の検証を行います。 | |
• | 続いて、更新、変更、削除などの処理を行います。 | |
• | 最後にAfterなトリガを発火します。 |
-- 文とトリガ CREATE TRIGGER t1 NO CASCADE BEFORE UPDATE ON x FOR EACH ROW MODE DB2SQL values app.notifyEmail('Jerry', 'Table x is about to be updated'); CREATE TRIGGER FLIGHTSDELETE AFTER DELETE ON FLIGHTS REFERENCING OLD_TABLE AS DELETEDFLIGHTS FOR EACH STATEMENT DELETE FROM FLIGHTAVAILABILITY WHERE FLIGHT_ID IN (SELECT FLIGHT_ID FROM DELETEDFLIGHTS); CREATE TRIGGER FLIGHTSDELETE3 AFTER DELETE ON FLIGHTS REFERENCING OLD AS OLD FOR EACH ROW DELETE FROM FLIGHTAVAILABILITY WHERE FLIGHT_ID = OLD.FLIGHT_ID;
REFERENCING { { OLD | NEW } [ ROW ] [ AS ] correlation-Name [ { OLD | NEW } [ ROW ] [ AS ] correlation-Name ] | { OLD TABLE | NEW TABLE } [ AS ] Identifier [ { OLD TABLE | NEW TABLE } [AS] Identifier ] | { OLD_TABLE | NEW_TABLE } [ AS ] Identifier [ { OLD_TABLE | NEW_TABLE } [AS] Identifier ] }
CREATE VIEW SAMP.V1 (COL_SUM, COL_DIFF) AS SELECT COMM + BONUS, COMM - BONUS FROM SAMP.EMPLOYEE; CREATE VIEW SAMP.VEMP_RES (RESUME) AS VALUES 'Delores M. Quintana', 'Heather A. Nicholls', 'Bruce Adamson'; CREATE VIEW SAMP.PROJ_COMBO (PROJNO, PRENDATE, PRSTAFF, MAJPROJ) AS SELECT PROJNO, PRENDATE, PRSTAFF, MAJPROJ FROM SAMP.PROJECT UNION ALL SELECT PROJNO, EMSTDATE, EMPTIME, EMPNO FROM SAMP.EMP_ACT WHERE EMPNO IS NOT NULL;
CREATE TABLE T1 (C1 DOUBLE PRECISION); CREATE FUNCTION SIN (DATA DOUBLE) RETURNS DOUBLE EXTERNAL NAME 'java.lang.Math.sin' LANGUAGE JAVA PARAMETER STYLE JAVA; CREATE VIEW V1 (C1) AS SELECT SIN(C1) FROM T1;
SELECT * FROM V1
• | 表の構造がアプリケーションを使う前では分からない場合 | |
• | 他のユーザが同様な構造の表を必要としない場合 | |
• | アプリケーションを使っている場合のみ、一時表の情報が必要な場合 | |
• | システムカタログにロックを持たずに、表の定義と破棄が可能な場合 |
DECLARE GLOBAL TEMPORARY TABLE 表名 { 列定義 [ , 列定義 ] * } [ ON COMMIT {DELETE | PRESERVE} ROWS ] NOT LOGGED [ON ROLLBACK DELETE ROWS]
• | BIGINT | |
• | CHAR | |
• | DATE | |
• | DECIMAL | |
• | DOUBLE | |
• | DOUBLE PRECISION | |
• | FLOAT | |
• | INTEGER | |
• | NUMERIC | |
• | REAL | |
• | SMALLINT | |
• | TIME | |
• | TIMESTAMP | |
• | VARCHAR |
set schema myapp; create table t1(c11 int, c12 date); declare global temporary table SESSION.t1(c11 int) not logged; -- 一時表はSESSIONスキーマにしか置かれないので、 -- SESSIONによる限定は冗長です。 declare global temporary table t2(c21 int) not logged; -- 一時表はSESSIONスキーマにしか置かれないので、 -- この例ではSESSIONにより限定しません。 insert into SESSION.t1 values (1); -- 現在のスキーマが"myapp."なので、一時表を使うにはSESSIONによる限定が必須です。 select * from t1; -- 表がSESSIONにより限定されていないので、 -- このselect文の"myapp.t1"は実表を参照します。
• | IDENTITY column-options | |
• | IDENTITY attribute in copy-options | |
• | AS (fullselect) DEFINITION ONLY | |
• | NOT LOGGED ON ROLLBACK PRESERVE ROWS | |
• | IN tablespace-name | |
• | PARTITIONING KEY | |
• | WITH REPLACE |
• | ALTER TABLE | |
• | CREATE INDEX | |
• | CREATE SYNONYM | |
• | CREATE TRIGGER | |
• | CREATE VIEW | |
• | GRANT | |
• | LOCK TABLE | |
• | RENAME | |
• | REVOKE |
• | SESSIONスキーマにある表(実表と一時表を含みます)への別名、トリガ、ビュー | |
• | SESSIONスキーマにある表を参照する文のキャッシュ | |
• | 一時表は外部キー制約や主キー制約で指定できない。 | |
• | トリガされるSQL文では一時表を参照できません。 | |
• | 列のチェック制約 | |
• | 発番列仕様 | |
• | 一時表へのインポート |
• | BLOB | |
• | CHAR FOR BIT DATA | |
• | CLOB | |
• | LONG VARCHAR | |
• | LONG VARCHAR FOR BIT DATA | |
• | VARCHAR FOR BIT DATA | |
• | XML |
DELETE FROM SAMP.IN_TRAY stmt.executeUpdate("DELETE FROM SAMP.IN_TRAY WHERE CURRENT OF " + resultSet.getCursorName());
DROP PROCEDURE 手続名
DROP SCHEMA スキーマ名 RESTRICT
• | 表からの情報の削除 | |
• | 表への情報の挿入 | |
• | 表あるいは表にある列の部分集合への外部キー制約の作成 | |
• | 表やビュー、表にある列の部分集合からの情報の選択 | |
• | 表へのトリガーの作成 | |
• | 表あるいは表にある列の部分集合の情報の更新 | |
• | 関数あるいは手続きの実行 |
{ 認証識別子 | PUBLIC } [,{ 認証識別子 | PUBLIC } ] *
GRANT SELECT ON TABLE t TO maria,harry
GRANT UPDATE, TRIGGER ON TABLE t TO anita,zhi
GRANT SELECT ON TABLE s.v to PUBLIC
GRANT EXECUTE ON PROCEDURE p TO george
INSERT INTO COUNTRIES VALUES ('Taiwan', 'TW', 'Asia') -- DEPARTMENTという表に新しい部署を挿入します。 -- ただし、新しい部署に新しい管理者は割り当てません。 INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT) VALUES ('E31', 'ARCHITECTURE', 'E01') -- 2つの新しい部署を一つの文で前と同じようにDEPARTMENTという表に挿入します。 -- ただし、新しい部署に新しい管理者は割り当てません。 INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT) VALUES ('B11', 'PURCHASING', 'B01'), ('E41', 'DATABASE ADMINISTRATION', 'E01') -- EMP_ACTと同じ列を持つ、MA_EMP_ACTという -- 一時表を作ります。 -- MA_EMP_ACTにEMP_ACTという表から、 -- プロジェクト番号(PROJNO)が'MA'という文字で始まる行をロードします。 CREATE TABLE MA_EMP_ACT ( EMPNO CHAR(6) NOT NULL, PROJNO CHAR(6) NOT NULL, ACTNO SMALLINT NOT NULL, EMPTIME DEC(5,2), EMSTDATE DATE, EMENDATE DATE ); INSERT INTO MA_EMP_ACT SELECT * FROM EMP_ACT WHERE SUBSTR(PROJNO, 1, 2) = 'MA'; -- LOCATIONという列にDEFAULTの値を挿入します。 INSERT INTO DEPARTMENT VALUES ('E31', 'ARCHITECTURE', '00390', 'E01', DEFAULT)
• | 表の複数行へのロックによるオーバーヘッドを避ける時。(言い換えればユーザ自ら、ロックエスカレーションを行う時。) | |
• | デッドロックを避ける時 |
LOCK TABLE 表名 IN { SHARE | EXCLUSIVE } MODE
LOCK TABLE Flights IN SHARE MODE; SELECT * FROM Flights WHERE orig_airport > 'OOO';
LOCK TABLE FlightAvailability IN EXCLUSIVE MODE; UPDATE FlightAvailability SET economy_seats_taken = (economy_seats_taken + 2) WHERE flight_id = 'AA1265' AND flight_date = DATE('2004-03-31'); UPDATE FlightAvailability SET economy_seats_taken = (economy_seats_taken + 2) WHERE flight_id = 'AA1265' AND flight_date = DATE('2004-04-11'); UPDATE FlightAvailability SET economy_seats_taken = (economy_seats_taken + 2) WHERE flight_id = 'AA1265' AND flight_date = DATE('2004-04-12'); UPDATE FlightAvailability SET economy_seats_taken = (economy_seats_taken + 2) WHERE flight_id = 'AA1265' AND flight_date = DATE('2004-04-15');
LOCK TABLE Maps IN EXCLUSIVE MODE; SELECT MAX(map_id) + 1 FROM Maps; -- INSERT INTO Maps . . .
RENAME COLUMN EMPLOYEE.MANAGER TO SUPERVISOR
ALTER TABLE t ADD COLUMN c1_newtype NEWTYPE UPDATE t SET c1_newtype = c1 ALTER TABLE t DROP COLUMN c1 RENAME COLUMN t.c1_newtype TO c1
RENAME TABLE 表名 TO 新表名
• | 表から情報を削除する。 | |
• | 表に情報を挿入する。 | |
• | 表や表にある列の部分集合に対して、外部キー参照を作成する。 | |
• | 表やビュー、表の列の部分集合から、情報を選択する。 | |
• | 表にトリガを作成する | |
• | 表や表にある列の部分集合にある情報を更新する。 | |
• | 関数や手続きなどのプログラムルーチンを実行する。 |
REVOKE 権限タイプ ON [ TABLE ] { 表名 | ビュー名 } FROM 権限を与えられていた人
REVOKE EXECUTE ON { FUNCTION | PROCEDURE } プログラムルーチンの指示子 FROM 権限を与えられていた人 RESTRICT
{ 認証識別子 | PUBLIC } [,{ authorization ID | PUBLIC } ] *
REVOKE SELECT ON TABLE t FROM maria,harry
REVOKE UPDATE, TRIGGER ON TABLE t FROM anita,zhi
REVOKE SELECT ON TABLE s.v FROM PUBLIC
REVOKE UPDATE (c1,c2) ON TABLE s.v FROM PUBLIC
REVOKE EXECUTE ON PROCEDURE p FROM george RESTRICT
-- 以下の例は全て等価で、 -- HOTELというスキーマがあれば動作します。 SET SCHEMA HOTEL SET SCHEMA hotel SET CURRENT SCHEMA hotel SET CURRENT SQLID hotel SET SCHEMA = hotel SET CURRENT SCHEMA = hotel SET CURRENT SQLID = hotel SET SCHEMA "HOTEL" -- クォートされた識別子 SET SCHEMA 'HOTEL' -- クォートされた文字列--小文字のhotelは存在しないので、 --この例はエラーとなります。 SET SCHEMA = 'hotel' --SQLIDはCURRENTとともに使わなければならないので、 --この例は失敗します。 SET SQLID hotel -- これによりスキーマは現在のユーザIDに設定されます。 SET CURRENT SCHEMA USER // Javaのプログラムでset schemaを使う例です。 PreparedStatement ps = conn.PrepareStatement("set schema ?"); ps.setString(1,"HOTEL"); ps.executeUpdate(); ... do some work ps.setString(1,"APP"); ps.executeUpdate(); ps.setString(1,"app"); //error - string is case sensitive // no app will be found ps.setNull(1, Types.VARCHAR); //error - null is not allowed
-- SAL+BONUS+COMMと名前を並べて、TOTAL_PAYという名前をつけ、 -- その名前で並び替える。 SELECT FIRSTNME, SALARY+BONUS+COMM AS TOTAL_PAY FROM EMPLOYEE ORDER BY TOTAL_PAY -- FOR UPDATE節を指定することで、 -- PROJECTという表にある、開始日時(PRSTDATE)、終了日時(PRENDATE)という列を更新する、 -- 更新可能なカーソルを作成する SELECT PROJNO, PRSTDATE, PRENDATE FROM PROJECT FOR UPDATE OF PRSTDATE, PRENDATE -- この文に限り分離レベルをRRにする。 SELECT * FROM Flights WHERE flight_id BETWEEN 'AA1111' AND 'AA1112' WITH RR
式 | DEFAULT
-- 'E21'の部署(WORKDEPT)にて管理者以外が一時的に再配属されている。 -- このことを、EMPLOYEEという表の彼らの仕事(JOB)をNULLに、 -- 彼らへの支払い(SALARY, BONUS, COMM)を0にしてあらわす。 UPDATE EMPLOYEE SET JOB=NULL, SALARY=0, BONUS=0, COMM=0 WHERE WORKDEPT = 'E21' AND JOB <> 'MANAGER' -- 特定の肩書きを持たない社員を管理者に昇格する。 UPDATE EMPLOYEE SET JOB = 'MANAGER' WHERE JOB IS NULL; // 全てのプロジェクトの人員配置(PRSTAFF)を1.5増やす。 stmt.executeUpdate("UPDATE PROJECT SET PRSTAFF = " "PRSTAFF + 1.5" + "WHERE CURRENT OF" + ResultSet.getCursorName()); -- EMPLOYEEという表にて社員番号(EMPNO)が'000290'の社員の仕事(JOB)を、 -- 既定値であるNULLに更新する。 UPDATE EMPLOYEE SET JOB = DEFAULT WHERE EMPNO = '000290'
• | 列レベルの制約 列レベルの制約は表にある単一の列を参照します。列名を指定するわけではなりません。(ただしチェック制約は除きます。)この制約は対象の列を参照しています。 | |
• | 表レベルの制約 表レベルの制約は表にある一つあるいはそれ以上の列を参照します。表レベルの制約は適用する列の名前を参照します。表レベルのチェック制約は0以上の列を参照します。 |
• | NOT NULL この列の値はNULLにできないことを指定します。(この種類の制約には名前を与えることができません。) | |
• | PRIMARY KEY 列により表中の行が一意に識別されることを指定します。列の値はNOT NULLと定義されなければなりません。 Note: ALTER TABLEにより主キーを追加しようとして、空の値を持つ列をその主キーに含めようとした場合、エラーとなって主キーは追加されません。より詳細な情報は、ALTER TABLE 文を参照してください。 | |
• | UNIQUE 列の値が一意でなければならないと指定します。NULLの値は不可です。 | |
• | FOREIGN KEY 列の値が、参照先の主キー、一意キーあるいはNULLでなければならないことを指定します。 | |
• | CHECK 列の値の規則を指定します。 |
• | PRIMARY KEY
一つ以上の列により表の行が一意に識別されることを表します。NULLの値は不可です。 | |
• | UNIQUE 列群の値が一意であると指定します。列はNOT NULLと定義されなければなりません。 | |
• | FOREIGN KEY 列群の値が参照先の主キー、一意列あるいはNULLでなければならないことを指定します。 Note: 外部キーが複数の列から構成されている場合、何れかの列がNULLであるならキーはNULLと見なされます。NULLでない列にどのような値があっても、挿入することができます。 | |
• | CHECK 表の値に適用される様々な規則を指定します。 |
• | 動的なパラメータ (?) | |
• | 日時関数 (CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP) | |
• | 副問い合わせ | |
• | ユーザー関数 (例えばUSER、SESSION_USER、CURRENT_USER) |
• | もし削除の規則がRESTRICTあるいはNO ACTIONであれば、依存表は処理に関連しますが、処理の影響は受けません。(つまりDerbyは表の値を検証しますが、削除はしません。) | |
• | もし削除の規則がSET NULLであれば、親表の行が削除されたり、削除が伝播された場合、依存表の行の値は更新の対象となります。 | |
• | もし削除の規則がCASCADEであれば、親表にて削除が行われた場合、依存表の行も削除されます。 | |
• | もし依存表が親表でもある場合、ここに書かれた処理が今度はその依存表に行われます。 |
-- OUT_TRAY_PKという名前の列レベルの主キー制約: CREATE TABLE SAMP.OUT_TRAY ( SENT TIMESTAMP, DESTINATION CHAR(8), SUBJECT CHAR(64) NOT NULL CONSTRAINT OUT_TRAY_PK PRIMARY KEY, NOTE_TEXT VARCHAR(3000) ); -- 表レベルの主キー制約では二つの列を -- キーの定義に記述できます。 CREATE TABLE SAMP.SCHED ( CLASS_CODE CHAR(7) NOT NULL, DAY SMALLINT NOT NULL, STARTING TIME, ENDING TIME, PRIMARY KEY (CLASS_CODE, DAY) ); -- 列レベルの制約を算術チェックのために使います。 -- 表レベルの制約を従業員への税金が賞与を超えないようにするため -- 使います。 CREATE TABLE SAMP.EMP ( EMPNO CHAR(6) NOT NULL CONSTRAINT EMP_PK PRIMARY KEY, FIRSTNME CHAR(12) NOT NULL, MIDINIT vARCHAR(12) NOT NULL, LASTNAME VARCHAR(15) NOT NULL, SALARY DECIMAL(9,2) CONSTRAINT SAL_CK CHECK (SALARY >= 10000), BONUS DECIMAL(9,2), TAX DECIMAL(9,2), CONSTRAINT BONUS_CK CHECK (BONUS > TAX) ); -- MEAL列が適切な略字のみとるよう、チェック制約を使います。 CREATE TABLE FLIGHTS ( FLIGHT_ID CHAR(6) NOT NULL , SEGMENT_NUMBER INTEGER NOT NULL , ORIG_AIRPORT CHAR(3), DEPART_TIME TIME, DEST_AIRPORT CHAR(3), ARRIVE_TIME TIME, MEAL CHAR(1) CONSTRAINT MEAL_CONSTRAINT CHECK (MEAL IN ('B', 'L', 'D', 'S')), PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER) ); CREATE TABLE METROPOLITAN ( HOTEL_ID INT NOT NULL CONSTRAINT HOTELS_PK PRIMARY KEY, HOTEL_NAME VARCHAR(40) NOT NULL, CITY_ID INT CONSTRAINT METRO_FK REFERENCES CITIES ); -- 表レベルの主キー制約と表レベルの外部キー制約を指定して、 -- 表を作成します。 CREATE TABLE FLTAVAIL ( FLIGHT_ID CHAR(6) NOT NULL, SEGMENT_NUMBER INT NOT NULL, FLIGHT_DATE DATE NOT NULL, ECONOMY_SEATS_TAKEN INT, BUSINESS_SEATS_TAKEN INT, FIRSTCLASS_SEATS_TAKEN INT, CONSTRAINT FLTAVAIL_PK PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER), CONSTRAINT FLTS_FK FOREIGN KEY (FLIGHT_ID, SEGMENT_NUMBER) REFERENCES Flights (FLIGHT_ID, SEGMENT_NUMBER) ); -- 列に一意性制約を加える。 ALTER TABLE SAMP.PROJECT ADD CONSTRAINT P_UC UNIQUE (PROJNAME); -- 列レベルの外部キー制約を利用して、 -- city_id列がCities表の主キーを参照する表を作成する。 CREATE TABLE CONDOS ( CONDO_ID INT NOT NULL CONSTRAINT hotels_PK PRIMARY KEY, CONDO_NAME VARCHAR(40) NOT NULL, CITY_ID INT CONSTRAINT city_foreign_key REFERENCES Cities ON DELETE CASCADE ON UPDATE RESTRICT );
SELECT Cities.city_id FROM Cities WHERE city_id < 5 -- 他種の表式 SELECT TABLENAME, ISINDEX FROM SYS.SYSTABLES T, SYS.SYSCONGLOMERATES C WHERE T.TABLEID = C.TABLEID ORDER BY TABLENAME, ISINDEX -- 結合順を指定する SELECT * FROM Flights, FlightAvailability WHERE FlightAvailability.flight_id = Flights.flight_id AND FlightAvailability.segment_number = Flights.segment_number AND Flights.flight_id < 'AA1115' -- 表式は結合式とすることができます。 --したがって、FROM句には複数の結合式を置く事ができます。 SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME, FLIGHTS.DEST_AIRPORT FROM COUNTRIES LEFT OUTER JOIN CITIES ON COUNTRIES.COUNTRY_ISO_CODE = CITIES.COUNTRY_ISO_CODE LEFT OUTER JOIN FLIGHTS ON Cities.AIRPORT = FLIGHTS.DEST_AIRPORT
-- airportで分類されたflightsの、 -- flying_timesの平均を探す。 SELECT AVG (flying_time), orig_airport FROM Flights GROUP BY orig_airport SELECT MAX(city_name), region FROM Cities, Countries WHERE Cities.country_ISO_code = Countries.country_ISO_code GROUP BY region -- smallintによる分類 SELECT ID, AVG(SALARY) FROM SAMP.STAFF GROUP BY ID -- AVGSALARY、EMPCOUNT列と、DEPTNO列をAS節により取得する。 -- さらにOTHERSという相関名で、WORKDEPT列による分類を行う。 SELECT OTHERS.WORKDEPT AS DEPTNO, AVG(OTHERS.SALARY) AS AVGSALARY, COUNT(*) AS EMPCOUNT FROM SAMP.EMPLOYEE OTHERS GROUP BY OTHERS.WORKDEPT
HAVING 検索条件
-- SELECT COUNT(*) -- FROM SAMP.STAFF -- GROUP BY ID -- HAVING SALARY > 15000
• | SELECT DISTINCTが指定されたり、SELECT文にGROUP BY節があった場合、ORDER BYする列はSELECTされる項目になければなりません。 | |
• | ORDER BY節があると、SELECT文を更新可能カーソルとすることができません。より詳細な情報は、更新可能なカーソルおよびResultSetの要件を参照してください。
例えば、もしINTEGERの列に整数があると、ソートのときNULLは1より大きいと見なされます。言い換えれば、NULLの値は、より上の位置にソートされます。 |
SELECT CITY_NAME, COUNTRY AS NATION FROM CITIES ORDER BY NATION
WHERE 真偽式
-- ビジネスクラスの席が予約されていない -- 便を見つける。 SELECT * FROM FlightAvailability WHERE business_seats_taken IS NULL OR business_seats_taken = 0 -- EMP_ACTとEMPLOYEEという表を結合して、 -- EMP_ACTの全列に、EMPLOYEEより従業員の苗字(LASTNAME)を加えて -- 結果行として返す。 SELECT SAMP.EMP_ACT.*, LASTNAME FROM SAMP.EMP_ACT, SAMP.EMPLOYEE WHERE EMP_ACT.EMPNO = EMPLOYEE.EMPNO -- 販売代理人の社員番号と給料を、彼らの部署の平均賃金と員数と共に、 --返す。 -- この問合せでは、まず問合せの一部(DINFO)にて、AS節で新しい列名を与えて、 -- AVGSALARYとEMPCOUNT列およびWHERE節で使われているDEPTNOを -- 取得できるようにする必要がある。 SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY, DINFO.AVGSALARY, DINFO.EMPCOUNT FROM EMPLOYEE THIS_EMP, (SELECT OTHERS.WORKDEPT AS DEPTNO, AVG(OTHERS.SALARY) AS AVGSALARY, COUNT(*) AS EMPCOUNT FROM EMPLOYEE OTHERS GROUP BY OTHERS.WORKDEPT )AS DINFO WHERE THIS_EMP.JOB = 'SALESREP' AND THIS_EMP.WORKDEPT = DINFO.DEPTNO
Statement s = conn.createStatement(); s.setCursorName("AirlinesResults"); ResultSet rs = conn.executeQuery( "SELECT Airline, basic_rate " + "FROM Airlines FOR UPDATE OF basic_rate"); Statement s2 = conn.createStatement(); s2.executeUpdate("UPDATE Airlines SET basic_rate = basic_rate " + "+ .25 WHERE CURRENT OF AirlinesResults");
• | ||
• | ||
• | UPDATE文 (SETの部分) | |
• | ||
• |
式の種類 | 説明 | |
列参照式 | ||
定数 | 多くの組込みのデータ型には関連した定数があります。(これはデータ型に記述されます。) | |
NULL | NULLは不明な値を表す、型のない定数です。 CAST式やINSERTのVALUES一覧およびUPDATEのSET節におくことができます。CAST式で利用することで、指定したデータ型を与えることができます。 | |
' | 動的パラメータ | |
CAST 式 | NULLや動的パラメータの型を特定したり、値を他の型に変換することができます。
CAST 関数を参照してください。 | |
スカラー副問合せ | 一列のみの一行だけを返す副問合せです。
スカラー副問合せを参照してください。 | |
表副問合せ | 副問合せからは、一列以上、一行以上を返すことができます。
表副問合せを参照してください。
FROM句やEXISTS、INや定量比較の表式として置くことができます。 |
• | BIGINT | |
• | DECIMAL | |
• | DOUBLE PRECISION | |
• | INTEGER | |
• | REAL | |
• | SMALLINT |
条件式 | 条件式では、ブーリアン値に基づいて評価する式を選ぶことができます。 |
式の種類 | 説明 |
-、*、/、単一の+と-の式 | 評価されると、オペランドに対して期待される演算処理が行われます。もし両方のオペランドが同じ型であれば、結果の型が昇格されることはありません。従って整数に除算演算子が適用されると、実際の計算結果に切捨て処理が行われて整数となった値が結果となります。
もし型が混在していた場合は、データ型の記述に従い、型の昇格が行われます。 単一の+で行われる処理はありません。(例えば+4は4と同じです。)単一の-は、-1をかけることと同じで、その結果符号が反転します。 |
AVG | 数値の集合から平均を返します。AVG関数 |
SUM | 数値の集合から合計を返します。SUM関数 |
LENGTH | 文字列やビット列から、文字数を返します。
LENGTH関数を参照してください。 |
LOWER | LCASEあるいはLOWER関数を参照してください。 |
COUNT | 値集合の個数を返します。COUNT 関数、COUNT(*) 関数を参照してください。 |
式の種類 | 説明 |
ワイルドカードのあるCHARやVARCHARの値 | ワイルドカードの%や_を使って、LIKE演算子が一致する情報を探すパターン文字列を作ります。 |
連結式 | 連結式にて、連結演算子の"||"は、右辺のオペランドを左辺のオペランドの末尾に連結します。これは文字列やビット列に対して利用できます。
Concatenationを参照してください。
|
組込みの文字列関数 | 組込みの文字列関数は文字列に作用して、文字列を返します。
LTRIM関数、LCASEあるいはLOWER関数、RTRIM関数、TRIM 関数、SUBSTR関数それとrrefsqlj29930を参照してください。 |
USER関数 |
式の種類 | 説明 |
CURRENT_DATE | 現在の日付を返します。CURRENT_DATE関数を参照してください。 |
CURRENT_TIME | 現在の時刻を返します。CURRENT_TIME関数を参照してください。 |
CURRENT_TIMESTAMP | 現在のタイムスタンプを返します。CURRENT_TIMESTAMP関数を参照してください。 |
SELECT [ DISTINCT | ALL ] 選択項目 [ , 選択項目]* FROM 節 [ WHERE 節] [ GROUP BY 節 ] [ HAVING 節 ]
-- 員数、部署番号(WORKDEPT)、部の平均賃金(SALARY)、 -- をEMPLOYEEという表にある全ての部署毎に一覧する。 -- 結果は部の平均賃金ごとに昇順で並べられる。 SELECT WORKDEPT, AVG(SALARY) FROM EMPLOYEE GROUP BY WORKDEPT ORDER BY 1
• | FROM 節 | |
• | WHERE 節 | |
• | GROUP BY (または暗黙のGROUP BY) | |
• | HAVING 節 | |
• | SELECT 節 |
VALUES CURRENT_TIMESTAMP
• | JDBCのResultSetMetaDataにて利用可能です。 | |
• | FROM節の副問い合わせにて、その選択式が使われた場合、結果表の列名として使われます。 | |
• | ORDER BY節にて並び替えを行う列の名前として使われます。 |
-- この例はORDER BY節、表への相関名、 -- SELECT-FROM-WHEREを示します。 SELECT CONSTRAINTNAME, COLUMNNAME FROM SYS.SYSTABLES t, SYS.SYSCOLUMNS col, SYS.SYSCONSTRAINTS cons, SYS.SYSCHECKS checks WHERE t.TABLENAME = 'FLIGHTS' AND t.TABLEID = col. REFERENCEID AND t.TABLEID = cons.TABLEID AND cons.CONSTRAINTID = checks.CONSTRAINTID ORDER BY CONSTRAINTNAME -- この例はDISTINCT節の使い方を示します。 SELECT DISTINCT ACTNO FROM EMP_ACT -- この例は式に名前を与える方法を示します。 -- EMPLOYEEという表から、最も高い給料が他の全部署の給料の平均より安い部署の、 -- 部署番号(WORKDEPT)、BOSSという名前を与えた部署の最も高い給料(SALARY)を -- 一覧します。 SELECT WORKDEPT AS DPT, MAX(SALARY) AS BOSS FROM EMPLOYEE EMP_COR GROUP BY WORKDEPT HAVING MAX(SALARY) < (SELECT AVG(SALARY) FROM EMPLOYEE WHERE NOT WORKDEPT = EMP_COR.WORKDEPT) ORDER BY BOSS
• | ResultSetを返す文 | |
• | 副問い合わせを置ける式や文 | |
• | INSERT文の値(INSERT文では通例的に選択式ではなくVALUES式を用います。) |
VALUES ( 値 {, 値 }* ) [ , ( 値 {, 値 }* ) ]* | VALUES 値 [ , 値 ]* }
式 | DEFAULT
-- 1列3行 VALUES (1),(2),(3) -- 1列3行 VALUES 1, 2, 3 -- 3列1行 VALUES (1, 2, 3) -- 2列3行 VALUES (1,21),(2,22),(3,23) -- 表を導出して構築 VALUES ('orange', 'orange'), ('apple', 'red'), ('banana', 'yellow') -- 単文でDEPARTMENTという表に二つの新しい部署を挿入する。 -- ただし新しい部署に管理者は割り当てない。 INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT) VALUES ('B11', 'PURCHASING', 'B01'), ('E41', 'DATABASE ADMINISTRATION', 'E01') -- MAJPROJ列に既定値をあてて、行を挿入する。 INSERT INTO PROJECT (PROJNO, PROJNAME, DEPTNO, RESPEMP, PRSTDATE, MAJPROJ) VALUES ('PL2101', 'ENSURE COMPAT PLAN', 'B01', '000020', CURRENT_DATE, DEFAULT) -- 組込みの関数を使う VALUES CURRENT_DATE -- 任意の式の値をとる VALUES (3*29, 26.0E0/3) -- 組込みの関数の返す値をとる values char(1)
演算子 | 説明と例 | 構文 |
AND, OR, NOT | オペランドにとる真偽式を評価します。
|
|
比較演算子 | <, =, >, <=, >=, <> は、全ての組み込みの型に適用することができます。
|
|
IS NULL, IS NOT NULL | 式の結果が空かそうでないかを判定します。
|
|
LIKE | 文字式が文字パターンと一致するかを判定します。文字パターンには一つ以上のワイルドカードが含まれます。
%は最初の文字式にて、該当する位置の任意の文字数(0文字以上)の文字列に一致します。 _は文字式にて、該当する位置の一文字に一致します。 それ以外の文字は、文字式にて該当する位置の同じ文字に一致します。
%や_をワイルドカードではない文字とするには、ESCAPE節で指定するエスケープ文字を使って文字をエスケープします。
Note:
LIKEによる比較ではDerbyは、個々の文字を非メタ文字と比較します。これはDerbyが=による比較のとき行う処理とは違います。=による比較では左辺の文字列全体が、=演算子の右辺の文字列全体と比較されます。より詳細な情報については、Derby ディベロッパーズ ガイドのDerbyにおける文字の照合を参照してください。 |
|
BETWEEN | 最初のオペランドが二つ目と三つ目のオペランドの間の値であるかを判定します。二つ目のオペランドは三つ目のオペランドより小さな値でなければなりません。
この演算子は<=と>=が適用できる型に対してのみ適用できます。
|
|
IN | 表副問合せや値の並びに作用します。左辺の式の値が表副問合せや値の並びに含まれるならば、真を返します。なお、表副問合せは複数行を返してかまいませんが、列は一つでなければなりません。
|
|
EXISTS | 表副問合せに作用して、その表副問合せが行を返すならば真を返し、行が返らないならば偽を返します。表副問合せは複数の列(*を使った場合に限ります。)や行を返すことができます。
|
|
定量比較 | 定量比較はALL、ANY、SOMEの何れかが適用された比較演算子
(<,=, >, <=, >=, <>)となります。
これは表副問合せに作用します。表副問合せは複数の行を返すことができますが、単一の列しか返せません。 ALLが指定された場合、表副問合せが返す全ての値に対して、比較の結果が真でなければなりません。ANYないしSOMEが指定された場合、表副問合せが返す何れかの値に対して、比較の結果が真である必要があります。ANYとSOMEは同じ意味です。
|
|
PreparedStatement ps2 = conn.prepareStatement( "UPDATE HotelAvailability SET rooms_available = " + "(rooms_available - ?) WHERE hotel_id = ? " + "AND booking_date BETWEEN ? AND ?"); -- このコード例では動的パラメータに -- プログラム変数の値を代入します。 ps2.setInt(1, numberRooms); ps2.setInt(2, theHotel.hotelId); ps2.setDate(3, arrival); ps2.setDate(4, departure); updateCount = ps2.executeUpdate();
1.
| BETWEENでは、二つ目と三つ目のオペランドのどちらかが動的パラメータでなければ、最初のオペランドを動的パラメータとすることができます。
一つ目のオペランドの型は、残りの二つが動的パラメータでなければ、それら動的ではないパラメータの型もしくはそれらを統合した型とみなされます。
| |
2.
| BETWEENの二つ目、三つ目のオペランドを動的パラメータとすることができます。
これらの型は左辺のオペランドと同じ型とみなされます。
| |
3.
| INでは一覧のうち一つでも動的パラメータではない項目があれば、左辺のオペランドを動的パラメータとすることができます。
左辺のオペランドの型は一覧にある動的でないパラメータの項目の型を統合した型とみなされます。
| |
4.
| INでは、最初のオペランドが動的パラメータではないか前掲のルールによりその型が決まる場合、INの述部の一覧に動的パラメータを置くことができます。
値の一覧に置かれた動的パラメータの型は、左辺のオペランドの型と同じものとみなされます。
| |
5.
| オペランドを2つ持つ演算子の、+・-・*・/・AND・OR・<・>・
=・<・>・<=と>=では、片方のオペランドを動的パラメータとすることができますが、両方を動的パラメータとすることはできません。
動的パラメータの型はもう片方のオペランドの型となります。
| |
6.
| CASTでは常に動的パラメータを利用できます。これにより動的パラメータに型を与えることができます。
| |
7.
| LIKE演算子の片方あるいは両方のオペランドを動的パラメータとすることが可能です。
左辺を動的パラメータとした場合、その型は右辺のオペランドと同じものとみなされます。なお最大長は型の最大長となります。右辺を動的パラメータとした場合、左辺のオペランドの長さと型が適用されます。
(LIKEではCHARとVARCHARの型を利用する事が可能です。詳細はConcatenationを参照してください。)
| |
8.
| 動的パラメータの?は、||演算子の片方の側にのみ置くことができます。
すなわち"? || ?"は不可能です。||演算子の片側にある?パラメータの型は、その反対側にある||演算子のオペランドの式の型によって決まります。もし反対側の式の型がCHARあるいはVARCHARであれば、動的パラメータの型はその型の最大長のVARCHARです。
もし反対側の式の型がCHAR FOR BIT DATAあるいはVARCHAR FOR BIT DATAであれば、動的パラメータの型はその方の最大長のVARCHAR FOR BIT DATAです。
| |
9.
| 条件式では?で表される動的パラメータの利用が可能です。式の最初のオペランドに置かれた動的パラメータの型は真偽型とみなされます。
式の二つ目あるいは三つ目のうち、片方だけを動的パラメータとすることができます。動的パラメータの型は、もう片方の型と同じものとみなされます。(つまり対応するのは三つ目と二つ目のオペランドとなります。)
| |
10.
| INSERT文のvaluesの一覧やselectの一覧に、動的パラメータを置くことができます。
動的パラメータの型は対象列の型と同じ型とみなされます。
| |
11.
| 副問合せと比較される?パラメータは、副問合せで選択された式の型をとります。
例を挙げます。
| |
12.
| UPDATE文の値に対して動的パラメータを置くことができます。動的パラメータの型は、対照表の列の型と同じものとみなされます。
| |
13.
| 単一オペランドをとる-や+の演算子にて、動的パラメータを利用可能です。
例を挙げます。
| |
14.
| LENGTHにて、動的パラメータを利用可能です。その型は最大長のVARCHARとみなされます。
| |
15.
| 定量比較
| |
16.
| IS式の左辺に動的パラメータを置くことができ、その型は真偽型とみなされます。 |
JOIN式
• | INNER JOIN 演算 join節により2表の間の結合を明示的に指定します。INNER JOIN 演算を参照してください。 | |
• | LEFT OUTER JOIN演算 join節により2表の間の結合を明示的に指定します。また最初の表にて一致行が二つ目の表にない行も残ります。LEFT OUTER JOIN演算を参照してください。 | |
• | RIGHT OUTER JOIN 演算 join節により2表の間の結合を明示的に指定します。また二つ目の表にて一致行が最初の表にない行も残ります。RIGHT OUTER JOIN 演算を参照してください。 |
SELECT * FROM SAMP.EMPLOYEE INNER JOIN SAMP.STAFF ON EMPLOYEE.SALARY < STAFF.SALARY
-- EMP_ACTとEMPLOYEEという表を結合します。 -- EMP_ACTという表より全列を選択して、 -- EMPLOYEEという表より従業員の苗字(LASTNAME)をそれぞれの行に -- 加えます。 SELECT SAMP.EMP_ACT.*, LASTNAME FROM SAMP.EMP_ACT JOIN SAMP.EMPLOYEE ON EMP_ACT.EMPNO = EMPLOYEE.EMPNO -- EMPLOYEEとDEPARTMENTという表を結合して、 -- 1930年より前に生まれた(BIRTDATE)全ての従業員の、 -- 従業員番号(EMPNO)、従業員の苗字(LASTNAME)、 -- 部署番号(EMPLOYEEという表のWORKDEPTと、DEPARTMENTという表のDEPTNO)、 -- 部署名(DEPTNAME)を選択する。 SELECT EMPNO, LASTNAME, WORKDEPT, DEPTNAME FROM SAMP.EMPLOYEE JOIN SAMP.DEPARTMENT ON WORKDEPT = DEPTNO AND YEAR(BIRTHDATE) < 1930 -- VALUES節から選択する問い合わせ(select文の一例)により値を"生成"する別の例 -- この問い合わせにより、一行の情報を持つ"R1"と"R2"という2列の"x"という表を -- どのように導出するのか示す。 SELECT * FROM (VALUES (3, 4), (1, 5), (2, 6)) AS VALUESTABLE1(C1, C2) JOIN (VALUES (3, 2), (1, 2), (0, 3)) AS VALUESTABLE2(c1, c2) ON VALUESTABLE1.c1 = VALUESTABLE2.c1 -- This results in: -- C1 |C2 |C1 |2 -- ----------------------------------------------- -- 3 |4 |3 |2 -- 1 |5 |1 |2 -- 全ての部署を、管理者の苗字と従業員番号と共に一覧する。 SELECT DEPTNO, DEPTNAME, EMPNO, LASTNAME FROM DEPARTMENT INNER JOIN EMPLOYEE ON MGRNO = EMPNO -- 全ての従業員の従業員番号と苗字を、 -- その管理者の従業員番号と苗字と共に一覧する。 SELECT E.EMPNO, E.LASTNAME, M.EMPNO, M.LASTNAME FROM EMPLOYEE E INNER JOIN DEPARTMENT INNER JOIN EMPLOYEE M ON MGRNO = M.EMPNO ON E.WORKDEPT = DEPTNO
--都市に対応するアジアの国 SELECT CITIES.COUNTRY, CITIES.CITY_NAME, REGION FROM Countries LEFT OUTER JOIN Cities ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE WHERE REGION = 'Asia' -- LEFT JOINという別の書き方により、前例と同じ結果を -- 実現する。 SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME,REGION FROM COUNTRIES LEFT JOIN CITIES ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE WHERE REGION = 'Asia'
-- EMPLOYEEとDEPAETMENTという表を結合して、 -- 1930より前に生まれた(BIRTHDATE)全ての社員の、 -- 社員番号(EMPNO)と、 -- 社員の苗字(LASTNAME)と、 -- 部署番号(EMPLOYEEという表のWORKDEPTと、DEPARTMENTという表のDEPTNO)と、 -- 部署名(DEPTNAME)を選択する。 SELECT EMPNO, LASTNAME, WORKDEPT, DEPTNAME FROM SAMP.EMPLOYEE LEFT OUTER JOIN SAMP.DEPARTMENT ON WORKDEPT = DEPTNO AND YEAR(BIRTHDATE) < 1930 -- 管理者のいない部署を含め全ての部署を、 -- 部署の管理者の社員番号と苗字と共に一覧する。 SELECT DEPTNO, DEPTNAME, EMPNO, LASTNAME FROM DEPARTMENT LEFT OUTER JOIN EMPLOYEE ON MGRNO = EMPNO
-- 都市のない国を含めた、 -- 全ての国と都市の一覧を得ます。 SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME FROM CITIES RIGHT OUTER JOIN COUNTRIES ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE -- 都市のない国を含めた、 -- アフリカの全ての国と都市の一覧を得ます。 SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME FROM CITIES RIGHT OUTER JOIN COUNTRIES ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE WHERE Countries.region = 'Africa' -- RIGHT JOINという同じ内容の記述により、 -- 前の例と同じ結果を得ます。 SELECT COUNTRIES.COUNTRY, CITIES.CITY_NAME FROM CITIES RIGHT JOIN COUNTRIES ON CITIES.COUNTRY_ISO_CODE = COUNTRIES.COUNTRY_ISO_CODE WHERE Countries.region = 'Africa'
• | UNION: ( L + R )。 | |
• | EXCEPT: ( L – R )と0(零)のうち大きいほう | |
• | INTERSECT: LとRのうち小さいほう |
-- 選択式 SELECT * FROM ORG -- 副問合せ SELECT * FROM (SELECT CLASS_CODE FROM CL_SCHED) AS CS -- 副問合せ SELECT * FROM (SELECT CLASS_CODE FROM CL_SCHED) AS CS (CLASS_CODE) -- UNIONにより -- ORGという表にある全行の -- DEPTNUMBとMANAGERという列に加え、 -- (1,2)と(3,4)を返す。 -- なお、DEPTNUMBとMANAGERはsmallint型の列である。 SELECT DEPTNUMB, MANAGER FROM ORG UNION ALL VALUES (1,2), (3,4) -- 値の式 VALUES (1,2,3) -- EMPLOYEEという表にて部署番号(WORKDEPT)が'E'で始まる社員および、 -- EMP_ACTという表にてプロジェクト番号(PROJNO)が -- 'MA2100'、'MA2110'あるいは'MA2112'のプロジェクトにアサインされている社員の -- 社員番号(EMPNO)を一覧する。 SELECT EMPNO FROM EMPLOYEE WHERE WORKDEPT LIKE 'E%' UNION SELECT EMPNO FROM EMP_ACT WHERE PROJNO IN('MA2100', 'MA2110', 'MA2112') -- 前の例と同じ内容の問合せを行い、EMPLOYEEという表から得た行には'emp'、 -- EMP_ACTという表から得た行には'emp_act'という"タグ"をつける。 -- どちらの表から来たかをあらわす"タグ"があるので、 -- この問合せは前の問合せとは違い、同じEMPNOを一回より多く返すことがある。 SELECT EMPNO, 'emp' FROM EMPLOYEE WHERE WORKDEPT LIKE 'E%' UNION SELECT EMPNO, 'emp_act' FROM EMP_ACT WHERE PROJNO IN('MA2100', 'MA2110', 'MA2112') -- 前の例とほぼ同じ内容の問合せである。 -- UNION ALLが指定されたので重複は取り除かれなくなる。 SELECT EMPNO FROM EMPLOYEE WHERE WORKDEPT LIKE 'E%' UNION ALL SELECT EMPNO FROM EMP_ACT WHERE PROJNO IN('MA2100', 'MA2110', 'MA2112') -- 前の例とほぼ同じ内容の問合せである。 -- いずれの表にもいない二人の社員を加えて、 -- その行に"new"というタグをつけた。 SELECT EMPNO, 'emp' FROM EMPLOYEE WHERE WORKDEPT LIKE 'E%' UNION SELECT EMPNO, 'emp_act' FROM EMP_ACT WHERE PROJNO IN('MA2100', 'MA2110', 'MA2112') UNION VALUES ('NEWAAA', 'new'), ('NEWBBB', 'new')
-- avg の返り値は常に単値なので、 -- 副問い合わせはスカラー副問合せとなる。 SELECT NAME, COMM FROM STAFF WHERE EXISTS (SELECT AVG(BONUS + 800) FROM EMPLOYEE WHERE COMM < 5000 AND EMPLOYEE.LASTNAME = UPPER(STAFF.NAME) ) -- VALUES節から選択を行う問合せにより、 -- 新しい値を"得る"方法を示す。 -- この問合せは"R1"と"R2"という列を持ち一行の、 -- "X"という表を導出するにはどのようにすればよいかを示す。 SELECT R1,R2 FROM (VALUES('GROUP 1','GROUP 2')) AS X(R1,R2)
-- FROM節の表式として、副問合せを使う。 SELECT VirtualFlightTable.flight_ID FROM (SELECT flight_ID, orig_airport, dest_airport FROM Flights WHERE (orig_airport = 'SFO' OR dest_airport = 'SCL') ) AS VirtualFlightTable -- FROM節の表式として、副問合せ(values式)を使う。 SELECT mycol1 FROM (VALUES (1, 2), (3, 4)) AS mytable (mycol1, mycol2) -- EXISTSにて副問合せを使う SELECT * FROM Flights WHERE EXISTS (SELECT * FROM Flights WHERE dest_airport = 'SFO' AND orig_airport = 'GRU') -- INにて副問合せを使う SELECT flight_id, segment_number FROM Flights WHERE flight_id IN (SELECT flight_ID FROM Flights WHERE orig_airport = 'SFO' OR dest_airport = 'SCL') -- 定量比較にて副問合せを使う SELECT NAME, COMM FROM STAFF WHERE COMM > (SELECT AVG(BONUS + 800) FROM EMPLOYEE WHERE COMM < 5000)
' | 全データ型 | 組込みの数値型 |
COUNT | X | X |
MIN | ' | X |
MAX | ' | X |
AVG | ' | X |
SUM | ' | X |
• | 選択式の選択項目 | |
• | ||
• |
-- not valid SELECT MIN(flying_time), flight_id FROM Flights
• | もし引数がNULLなら、関数の返り値もNULLです。 | |
• | もし引数の絶対値が1を超える場合、値が範囲外であることを示す例外が返ります。(SQL state 22003) |
• | 引数がNULLなら関数の結果もNULLです。 | |
• | 引数が0なら、返り値も引数と同じ符号の0です。 | |
• | 引数の絶対値が1を超える場合、範囲外の値を示す例外が返ります。(SQL state 22003) |
• | 引数がNULLであるなら、返り値もNULLとなります。 | |
• | 引数が0であるなら、返り値は引数と同じ符号の0となります。 |
AVG ( [ DISTINCT | ALL ] 式 )
SELECT AVG (DISTINCT flying_time), SUM (DISTINCT miles) FROM Flights
SELECT AVG(c1) FROM (VALUES (1), (1), (1), (1), (2)) AS myTable (c1)
SELECT AVG(CAST (c1 AS DOUBLE PRECISION)) FROM (VALUES (1), (1), (1), (1), (2)) AS myTable (c1)
BIGINT (文字式 | 数式 )
CASE WHEN 真偽式 THEN then式 [ WHEN 真偽式 THEN then式 ]... ELSE else式 END
-- 3を返す。 VALUES CASE WHEN 1=1 THEN 3 ELSE 4 END
-- 7を返す。 VALUES CASE WHEN 1 = 2 THEN 3 WHEN 4 = 5 THEN 6 ELSE 7 END
Types |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SMALLINT | Y | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - |
INTEGER | Y | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - |
BIGINT | Y | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - |
DECIMAL | Y | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - |
REAL | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
DOUBLE | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
FLOAT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
CHAR | Y | Y | Y | Y | - | - | - | Y | Y | Y | - | - | - | Y | - | Y | Y | Y | - |
VARCHAR | Y | Y | Y | Y | - | - | - | Y | Y | Y | - | - | - | Y | - | Y | Y | Y | - |
LONG VARCHAR | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | Y | - | - | - | - | - |
CHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | Y | Y | Y | - | - | - | - |
VARCHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | Y | Y | Y | - | - | - | - |
LONG VARCHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | Y | Y | Y | - | - | - | - |
CLOB | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | Y | - | - | - | - | - |
BLOB | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Y | - | - | - | - |
DATE | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | Y | - | - | - |
TIME | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - | Y | - | - |
TIMESTAMP | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | Y | Y | Y | - |
XML | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Y |
SELECT CAST (miles AS INT) FROM Flights -- timestampを文字列に変換する INSERT INTO mytable (text_column) VALUES (CAST (CURRENT_TIMESTAMP AS VARCHAR(100))) -- NULLを適切なデータ型に変換しなければならない。 SELECT airline FROM Airlines UNION ALL VALUES (CAST (NULL AS CHAR(2))) -- doubleをdecimalに変換する。 SELECT CAST (FLYING_TIME AS DECIMAL(5,2)) FROM FLIGHTS -- SMALLINTをBIGINTに変換する VALUES CAST (CAST (12 as SMALLINT) as BIGINT)
• | もし引数がNULLなら、返り値はNULLです。 | |
• | もし引数が整数なら、返り値は引数と同じ数値です。 | |
• | もし引数が0なら、返り値は0です。 | |
• | もし引数が0より小さく-1.0より大きければ、返り値は0です。 |
• | 文字列変換 一つ目の引数が文字列である場合です。 | |
• | 日時変換 一つ目の引数が日付、時刻、タイムスタンプである場合です。 | |
• | 小数変換 一つ目の引数が小数である場合です。 | |
• | 倍精度浮動小数点数変換 一つ目の引数がDOUBLEあるいはREALである場合です。 | |
• | 整数変換 一つ目の引数がSMALLINT、INTEGER、BIGINTである場合です。 |
CHAR (文字式 [, 数] )
CHAR (整数式 )
• | もし一つ目の引数がSMALLINTなら、結果の文字列の長さは6です。もし結果にて数値の文字数が6に満たない場合は、6文字となるよう右側に空白が詰められます。 | |
• | もし一つ目の引数がINTEGERなら、結果の文字列の長さは11です。もし結果にて数値の文字数が11に満たない場合は、11文字となるよう右側に空白が詰められます。 | |
• | もし一つ目の引数がBIGINTなら、結果の文字列の長さは20です。もし結果にて数値の文字数が20に満たない場合は、20文字となるよう右側に空白が詰められます。 |
CHAR (日時式 )
• | 日付: 結果は日付を表す文字表現です。結果の長さは10です。 | |
• | 時刻: 結果は時刻を表す文字表現です。結果の長さは8です。 | |
• | タイムスタンプ: 結果はタイムスタンプを表す文字表現です。結果の長さは26です。 |
{ { 文字式 || 文字式 } | { ビット式 || ビット式 } }
• | もし引数がNULLであれば、関数の結果はNULLです。 |
COUNT ( [ DISTINCT | ALL ] 式 )
-- 問い合わせできない SELECT COUNT (DISTINCT flying_time), SUM (DISTINCT miles) FROM Flights
• | もし引数が日付、タイムスタンプあるいは日付やタイムスタンプとして有効な文字列であれば、引数の日付の部分が返り値となります。 | |
• | もし引数が数であるならば、その引数をnとして、西暦1年1月1日よりn-1日後の日付が返り値となります。 | |
• | もし引数が長さ7の文字列であれば、その文字列が表す日付が返り値となります。 |
• | もし引数がNULLなら、関数の結果はNULLです。 | |
• | もし引数が整数なら、関数の結果は引数と同じ値です。 | |
• | もし引数が0なら、関数の結果は0です。 |
• | 識別列のないVALUES節を持つ単行のINSERT文 | |
• | VALUES節を持つ複数行のINSERT文 | |
• | selectによるINSERT文 |
ij> create table t1(c1 int generated always as identity, c2 int); 0 rows inserted/updated/deleted ij> insert into t1(c2) values (8); 1 row inserted/updated/deleted ij> values IDENTITY_VAL_LOCAL(); 1 ------------------------------- 1 1 row selected ij> select IDENTITY_VAL_LOCAL()+1, IDENTITY_VAL_LOCAL()-1 from t1; 1 |2 ------------------------------------------------------------------- 2 |0 1 row selected ij> insert into t1(c2) values (IDENTITY_VAL_LOCAL()); 1 row inserted/updated/deleted ij> select * from t1; C1 |C2 ------------------------------- 1 |8 2 |1 2 rows selected ij> values IDENTITY_VAL_LOCAL(); 1 ------------------------------- 2 1 row selected ij> insert into t1(c2) values (8), (9); 2 rows inserted/updated/deleted ij> -- 複数の値の挿入では、関数が返す値は変わらない。 values IDENTITY_VAL_LOCAL(); 1 ------------------------------- 2 1 row selected ij> select * from t1; C1 |C2 ------------------------------- 1 |8 2 |1 3 |8 4 |9 4 rows selected ij> insert into t1(c2) select c1 from t1; 4 rows inserted/updated/deleted -- selectを元にした挿入では、関数が返す値は変わらない。 ij> values IDENTITY_VAL_LOCAL(); 1 ------------------------------- 2 1 row selected ij> select * from t1; C1 |C2 ------------------------------- 1 |8 2 |1 3 |8 4 |9 5 |1 6 |2 7 |3 8 |4 8 rows selected
INT[EGER] (数式 | 文字列式 )
• | もし引数がNULLであるなら、関数の結果はNULLです。 | |
• | もし引数が0あるいは負数であるなら、値が範囲外であることを表す例外(SQL state 22003)が挙がります。 |
• | もし引数がNULLであるなら、返り値はNULLです。 | |
• | もし引数が0あるいは負数であるなら、値が範囲外であることを表す例外(SQL state 22003)が挙がります。 |
• | 最初の文字式で指定された文字列が探し出されます。 | |
• | 二つ目の文字式で指定された文字列より、探し出されます。 | |
• | 三つ目の引数は開始位置で、二つ目の引数のどの位置から文字列を探し出すかを指定します。もし三つ目の引数が指定されなければ、LOCATE関数は二つ目の引数の頭から文字列を探し出します。 |
-- 'love'が2の位置で見つかるので2が返る。 VALUES LOCATE('love', 'clover')
-- 'clover'から'stove'は見つからないので0が返る。 VALUES LOCATE('stove', 'clover')
-- 5が返る。(開始位置は4) VALUES LOCATE('iss', 'Mississippi', 4)
-- 空文字列は特別で1が返る。 VALUES LOCATE('', 'ABC')
-- ''から'AAA'は見つからないので0が返る。 VALUES LOCATE('AAA', '')
-- 3が返る。 VALUES LOCATE('', '', 3)
MAX ( [ DISTINCT | ALL ] 式 )
SELECT COUNT (DISTINCT flying_time), MAX (DISTINCT miles) FROM Flights
MIN ( [ DISTINCT | ALL ] 式 )
SELECT COUNT (DISTINCT flying_time), MIN (DISTINCT miles) FROM Flights
• | もし引数がNULLなら、関数の返り値はNULLです。 | |
• | もし引数が零(0)なら、関数の返り値は0です。 |
SMALLINT ( 数式 | 文字式 )
SUBSTR({ 文字式 }, 開始位置 [, 列の長さ ] )
SUM ( [ DISTINCT | ALL ] 式 )
SELECT AVG (DISTINCT flying_time), SUM (DISTINCT miles) FROM Flights
• | 引数がNULLのとき、返り値はNULLです。 | |
• | 引数が零(0)のとき、返り値は零です。 |
• | もし引数が一つである場合は、引数は、タイムスタンプか、CLOB・LONG VARCHAR・XML以外のタイムスタンプを有効に表す14文字の文字列である必要があります。14文字の文字列は、有効な日付および時刻を10進数でyyyyxxddhhmmssという書式で表す必要があります。ここで、yyyyは年、xxは月、ddは日、hhは時、mmは分、ssは秒です。 | |
• | もし両方の引数が指定された場合は、最初の引数は日付あるいは日付を有効に表す文字列で、二つ目の引数は時刻あるいは時刻を有効に表す文字列です。 |
• | もし両方の引数が指定された場合、結果は最初の引数で指定された日付と、二つ目の引数で指定された時刻のタイムスタンプです。なお、タイムスタンプのマイクロ秒の部分は0となります。 | |
• | もし引数が一つで、それがタイムスタンプであった場合、結果はそのタイムスタンプです。 | |
• | もし引数が一つで、それが文字列であった場合、結果はその文字列で与えられたタイムスタンプです。14文字の文字列により指定されないマイクロ秒の部分は0となります。 |
TRIM( [ trimOperands ] trimSource)
trimOperands ::= { trimType [ trimCharacter ] FROM | trimCharacter FROM } trimType ::= { LEADING | TRAILING | BOTH } trimCharacter ::= 文字式 trimSource ::= 文字式
• | 長さ一文字の文字列あるいは | |
• | NULL |
• | trimTypeがLEADINGなら、結果はtrimSourceの値の前からtrimCharを取り除いた値です。 | |
• | trimTypeがTRAILINGなら、結果はtrimSourceの値の後ろからtrimCharを取り除いた値です。 | |
• | trimTypeがBOTHなら、結果はtrimSourceの値の前*と*後からtrimCharを取り除いた値です。 |
-- 'derby'を返します。(空白はありません。) VALUES TRIM(' derby ')
-- 'derby'を返します。 (空白はありません。) VALUES TRIM(BOTH ' ' FROM ' derby ')
-- 'derby 'を返します。 (末尾に空白があります。) VALUES TRIM(LEADING ' ' FROM ' derby ')
-- ' derby'を返します。 (先頭に二つ空白があります。) VALUES TRIM(TRAILING ' ' FROM ' derby ')
-- NULLを返します。 VALUES TRIM(cast (null as char(1)) FROM ' derby ')
-- NULLを返します。 VALUES TRIM(' ' FROM cast(null as varchar(30)))
-- ' derb'を返します。(先頭に空白がありあmす。) VALUES TRIM('y' FROM ' derby')
-- trimCharacterには一文字しか指定できないのでエラーとなります。 VALUES TRIM('by' FROM ' derby')
UCASEまたはUPPER ( 文字式 )
XMLEXISTS ( xquery文字列リテラル PASSING BY REF XML値式 [ BY REF ] )
SELECT id, XMLEXISTS('//student[@age=20]' PASSING BY REF xcol) FROM x_table
SELECT id FROM x_table WHERE XMLEXISTS('/roster/student' PASSING BY REF xcol)
CREATE TABLE x_table ( id INT, xcol XML CHECK (XMLEXISTS ('//student[@age < 25]' PASSING BY REF xcol)) )
XMLPARSE (DOCUMENT 文字列値式 PRESERVE WHITESPACE)
INSERT INTO x_table VALUES (1, XMLPARSE(DOCUMENT ' <roster> <student age="18">AB</student> <student age="23">BC</student> <student>NOAGE</student> </roster>' PRESERVE WHITESPACE) )
この文には、setCharacterStream()メソッドや、型変換した対照型に可能なJDBCの他のsetXXXメソッドを使って、値を与える必要があります。INSERT INTO x_table VALUES (2, XMLPARSE (DOCUMENT CAST (? AS CLOB) PRESERVE WHITESPACE) )
XMLQUERY ( xquery文字列リテラル PASSING BY REF xml値式 [ RETURNING SEQUENCE [ BY REF ] ] EMPTY ON EMPTY )
この問合せでは、XMLQUERY演算子が実際に結果を返すか否かにかかわらず、結果にはx_tableの全行毎に結果行があります。SELECT ID, XMLSERIALIZE( XMLQUERY('//student[@age>20]' PASSING BY REF xcol EMPTY ON EMPTY) AS VARCHAR(50)) FROM x_table
この問合せでは結果には、x_table中のBCという名前の生徒の行のみあります。SELECT ID, XMLSERIALIZE( XMLQUERY('string(//student[text() = "BC"]/@age)' PASSING BY REF xcol EMPTY ON EMPTY) AS VARCHAR(50)) FROM x_table WHERE XMLEXISTS('//student[text() = "BC"]' PASSING BY REF xcol)
INSERT INTO x_table (id, xcol) VALUES (3, XMLPARSE(DOCUMENT '[xString]' PRESERVE WHITESPACE)); SELECT id, XMLSERIALIZE(xcol AS VARCHAR(100)) FROM x_table WHERE id = 3;
XMLSERIALIZE ( xml値式 AS 文字情報型 )
JDBCを使ってこの結果を取り出すためには、JDBCのgetCharacterStream()やgetString()メソッドを使うことができます。SELECT ID, XMLSERIALIZE( xcol AS CLOB) FROM x_table
SELECT ID, XMLSERIALIZE( XMLQUERY('//student[@age>20]' PASSING BY REF xcol EMPTY ON EMPTY) AS VARCHAR(50)) FROM x_table
SYSCS_UTIL.SYSCS_GET_USER_ACCESS (USERNAME VARCHAR(128)) RETURNS VARCHAR(128)
SYSCS_UTIL.SYSCS_BACKUP_DATABASE(IN BACKUPDIR VARCHAR())
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_NOWAIT(IN BACKUPDIR VARCHAR())
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE (IN BACKUPDIR VARCHAR(32672), IN SMALLINT DELETE_ARCHIVED_LOG_FILES)
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE(?, ?)"); cs.setString(1, "c:/backupdir"); cs.setInt(2, 0); cs.execute();
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE('c:/backupdir', 0)
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE('c:/backupdir', 1)
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE_NOWAIT (IN BACKUPDIR VARCHAR(32672), IN SMALLINT DELETE_ARCHIVED_LOG_FILES)
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE_NOWAIT(?, ?)"); cs.setString(1, "c:/backupdir"); cs.setInt(2, 0); cs.execute();
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE_NOWAIT('c:/backupdir', 0)
SYSCS_UTIL.SYSCS_BACKUP_DATABASE_AND_ENABLE_LOG_ARCHIVE_MODE_NOWAIT('c:/backupdir', 1)
SYSCS_UTIL.SYSCS_COMPRESS_TABLE (IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN SEQUENTIAL SMALLINT)
call SYSCS_UTIL.SYSCS_COMPRESS_TABLE('US', 'CUSTOMER', 1)
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?)"); cs.setString(1, "US"); cs.setString(2, "CUSTOMER"); cs.setShort(3, (short) 1); cs.execute();
SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE( IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN PURGE_ROWS SMALLINT, IN DEFRAGMENT_ROWS SMALLINT, IN TRUNCATE_END SMALLINT )
call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('US', 'CUSTOMER', 1, 1, 1);
call SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('US', 'CUSTOMER', 0, 0, 1);
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, ?, ?, ?)"); cs.setString(1, "US"); cs.setString(2, "CUSTOMER"); cs.setShort(3, (short) 1); cs.setShort(4, (short) 1); cs.setShort(5, (short) 1); cs.execute();
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, ?, ?, ?)"); cs.setString(1, "US"); cs.setString(2, "CUSTOMER"); cs.setShort(3, (short) 0); cs.setShort(4, (short) 0); cs.setShort(5, (short) 1); cs.execute();
SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(IN SMALLINT DELETE_ARCHIVED_LOG_FILES)
SYSCS_UTIL.SYSCS_EXPORT_TABLE (IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128))
SYSCS_UTIL.SYSCS_EXPORT_TABLE_LOBS_TO_EXTFILE ( IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128) IN LOBSFILENAME VARCHAR(32672) )
SYSCS_UTIL.SYSCS_EXPORT_QUERY(IN SELECTSTATEMENT VARCHAR(32672), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128))
SYSCS_UTIL.SYSCS_EXPORT_QUERY_LOBS_TO_EXTFILE ( IN SELECTSTATEMENT VARCHAR(32672), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128) IN LOBSFILENAME VARCHAR(32672) )
SYSCS_UTIL.SYSCS_IMPORT_DATA (IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN INSERTCOLUMNS VARCHAR(32672), IN COLUMNINDEXES VARCHAR(32672), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128), IN REPLACE SMALLINT)
SYSCS_UTIL.SYSCS_IMPORT_DATA_LOBS_FROM_EXTFILE ( IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN INSERTCOLUMNS VARCHAR(32672), IN COLUMNINDEXES VARCHAR(32672), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128), IN REPLACE SMALLINT) )
• | Offsetは外部ファイル中のバイト数で数えた位置です。 | |
• | lengthはバイト数で数えたLOB列の情報の長さです。 |
CALL SYSCS_UTIL.SYSCS_IMPORT_DATA_LOBS_FROM_EXTFILE (null, 'STAFF', 'NAME,DEPT,SALARY,PICTURE', '2,3,4,6', + 'c:\data\staff.del', ',','"','UTF-8', 0);
SYSCS_UTIL.SYSCS_IMPORT_TABLE (IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128), IN REPLACE SMALLINT)
SYSCS_UTIL.SYSCS_IMPORT_TABLE_LOBS_FROM_EXTFILE ( IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128), IN REPLACE SMALLINT) )
String backupdirectory = "c:/mybackups/" + JCalendar.getToday(); CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_FREEZE_DATABASE()"); cs.execute(); cs.close(); // "backupdirectory"全体のバックアップをとる、ユーザのコード // バックアップの終了後に、データベースを解凍します。 CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_UNFREEZE_DATABASE()"); cs.execute(); cs.close();
String backupdirectory = "c:/mybackups/" + JCalendar.getToday(); CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_FREEZE_DATABASE()"); cs.execute(); cs.close(); // "backupdirectory"全体のバックアップを取るユーザのコード // バックアップが終わったら、データベースを解凍します。 now unfreeze the database once backup has completed: CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_UNFREEZE_DATABASE()"); cs.execute(); cs.close();
SYSCS_UTIL.SYSCS_GET_DATABASE_PROPERTY(IN KEY VARCHAR(128), IN VALUE VARCHAR(32672))
SYSCS_UTIL.SYSCS_SET_USER_ACCESS USERNAME VARCHAR(128), CONNECTION_PERMISSION VARCHAR(128))
診断表式 | 式の種類 |
SYSCS_DIAG.ERROR_LOG_READER | 表関数 |
SYSCS_DIAG.ERROR_MESSAGES | 表 |
SYSCS_DIAG.LOCK_TABLE | 表 |
SYSCS_DIAG.SPACE_TABLE | 表関数 |
SYSCS_DIAG.STATEMENT_CACHE | 表 |
SYSCS_DIAG.STATEMENT_DURATION | 表関数 |
SYSCS_DIAG.TRANSACTION_TABLE | 表 |
ここでT1はユーザが指定した表の名前で、これは任意の識別子です。SELECT * FROM TABLE (SYSCS_DIAG.ERROR_LOG_READER()) AS T1
SELECT * FROM TABLE (SYSCS_DIAG.ERROR_LOG_READER('myderbyerrors.log')) AS T1
SELECT * FROM SYSCS_DIAG.ERROR_MESSAGES
SELECT * FROM SYSCS_DIAG.LOCK_TABLE
ここでT2はユーザ指定の表名で、任意の識別子を指定できます。SELECT T2.* FROM SYS.SYSTABLES systabs, TABLE (SYSCS_DIAG.SPACE_TABLE(systabs.tablename)) AS T2 WHERE systabs.tabletype = 'T'
SELECT * FROM TABLE (SYSCS_DIAG.SPACE_TABLE('MYSCHEMA', 'MYTABLE')) AS T2
SELECT * FROM SYSCS_DIAG.STATEMENT_CACHE
ここでT1はユーザが指定した表名で、任意の識別子を指定できます。SELECT * FROM TABLE (SYSCS_DIAG.STATEMENT_DURATION()) AS T1
SELECT * FROM TABLE (SYSCS_DIAG.STATEMENT_DURATION('somederby.log')) AS T1
SELECT * FROM SYSCS_DIAG.TRANSACTION_TABLE
式における最も大きな型 | 式の結果型 |
DOUBLE PRECISION | DOUBLE PRECISION |
REAL | DOUBLE PRECISION |
DECIMAL | DECIMAL |
BIGINT | BIGINT |
INTEGER | INTEGER |
SMALLINT | INTEGER |
create table mytable (r REAL, d DOUBLE PRECISION); 0 rows inserted/updated/deleted INSERT INTO mytable (r, d) values (3.4028236E38, 3.4028235E38); ERROR X0X41: The number '3.4028236E38' is outside the range for the data type REAL.
INSERT INTO mytable(integer_column) values (1.09e0); 1 row inserted/updated/deleted SELECT integer_column FROM mytable; I --------------- 1
ij> insert into mytable (decimal_column) VALUES (55555555556666666666); ERROR X0Y21: The number '55555555556666666666' is outside the range of the target DECIMAL/NUMERIC(5,2) datatype.
• | lpは左辺のオペランドの精度とします。 | |
• | rpは右辺のオペランドの精度とします。 | |
• | lsは左辺のオペランドの目盛りとします。 | |
• | rsは右辺のオペランドの目盛りとします。 |
Types |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SMALL INT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
INTEGER | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
BIGINT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
DECIMAL | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
REAL | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
DOUBLE | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
FLOAT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
CHAR | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | Y | - | Y | Y | Y | - |
VARCHAR | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | Y | - | Y | Y | Y | - |
LONG VARCHAR | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | Y | - | - | - | - | - |
CHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | - | - | - |
VARCHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | - | - | - |
LONG VARCHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | - | - | - |
CLOB | - | - | - | - | - | - | - | Y | Y | Y | - | - | - | Y | - | - | - | - | - |
BLOB | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Y | - | - | - | - |
DATE | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | Y | - | - | - |
TIME | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - | Y | - | - |
TIME STAMP | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - | - | Y | - |
XML | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Y |
Types |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SMALL INT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
INTEGER | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
BIGINT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
DECIMAL | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
REAL | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
DOUBLE | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
FLOAT | Y | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
CHAR | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | Y | Y | Y | - |
VARCHAR | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | Y | Y | Y | - |
LONG VARCHAR | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
CHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - |
VARCHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - |
LONG VARCHAR FOR BIT DATA | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
CLOB | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
BLOB | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
DATE | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | Y | - | - | - |
TIME | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - | Y | - | - |
TIME STAMP | - | - | - | - | - | - | - | Y | Y | - | - | - | - | - | - | - | - | Y | - |
XML | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
create table pictures(name varchar(32) not null primary key, pic blob(16M)); --あらゆるロゴの画像を見つける。 select length(pic), name from pictures where name like '%logo%'; --重複した画像を見つける(blobの比較) select a.name as double_one, b.name as double_two from pictures as a, pictures as b where a.name < b.name and a.pic = b.pic order by 1,2;
{ CHAR | CHARACTER }[(長さ)] FOR BIT DATA
import java.sql.*; public class clob { public static void main(String[] args) { try { String url = "jdbc:derby:clobberyclob;create=true"; Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); Connection conn = DriverManager.getConnection(url); Statement s = conn.createStatement(); s.executeUpdate("CREATE TABLE documents (id INT, text CLOB(64 K))"); conn.commit(); // --- ファイルを追加する。 java.io.File file = new java.io.File("asciifile.txt"); int fileLength = (int) file.length(); // - 最初に入力ストリームを作成する。 java.io.InputStream fin = new java.io.FileInputStream(file); PreparedStatement ps = conn.prepareStatement("INSERT INTO documents VALUES (?, ?)"); ps.setInt(1, 1477); // - 入力パラメータの値を入力ストリームにする。 ps.setAsciiStream(2, fin, fileLength); ps.execute(); conn.commit(); // --- 列を読む。 ResultSet rs = s.executeQuery("SELECT text FROM documents WHERE id = 1477"); while (rs.next()) { java.sql.Clob aclob = rs.getClob(1); java.io.InputStream ip = rs.getAsciiStream(1); int c = ip.read(); while (c > 0) { System.out.print((char)c); c = ip.read(); } System.out.print("\n"); // ... } } catch (Exception e) { System.out.println("Error! "+e); } } }
上に示した三つの書式のうち、最初のものはjava.sql.Dateの書式です。yyyy-mm-dd mm/dd/yyyy dd.mm.yyyy
{ DECIMAL | DEC } [(精度 [, 目盛り ])]
-- この型変換で失われるのは小数部のみです。 values cast (1.798765 AS decimal(5,2)); 1 -------- 1.79 -- この型変換はうまく行きません。 values cast (1798765 AS decimal(5,2)); 1 -------- ERROR 22003: The resulting value is outside the range for the data type DECIMAL/NUMERIC(5,2).
• | DOUBLEの最小値: -1.79769E+308 | |
• | DOUBLEの最大値: 1.79769E+308 | |
• | DOUBLEの最小の正の値: 2.225E-307 | |
• | DOUBLEの最大の負の値: -2.225E-307 |
-- この例では定数値が長すぎるため、失敗します。 values 01234567890123456789012345678901e0;
• | REALの最小値: -3.402E+38 | |
• | REALの最大値: 3.402E+38 | |
• | REALの最小の正の値: 1.175E-37 | |
• | REALの最大の負の値: -1.175E-37 |
-- この例では定数が長すぎるためエラーとなります。 values 01234567890123456789012345678901e0;
上記の三つのうち最初の書式はjava.sql.Timeの書式です。hh:mm[:ss] hh.mm[.ss] hh[:mm] {AM | PM}
上記の二つの書式のうち、最初の一つはjava.sql.Timestampの書式です。yyyy-mm-dd hh:mm:ss[.nnnnnn] yyyy-mm-dd-hh.mm.ss[.nnnnnn]
{ VARCHAR | CHAR VARYING | CHARACTER VARYING }(長さ)
{ VARCHAR | CHAR VARYING | CHARACTER VARYING } (長さ) FOR BIT DATA
• | SQL/XMLに定義された、整形されたXML(DOCUMENT(ANY))の値を記録する。 | |
• | 一時的に整形されたXML(DOCUMENT(ANY))の値ではない、XML(SEQUENCE)の値を扱う。 |
こうすることで、直列化した型に対応するgetXXXメソッドを使って、XMLの値を、取得することができます。この例ではCLOB型となります。SELECT XMLSERIALIZE (xcol as CLOB) FROM myXmlTable
そして、文字列の型と互換性のあるsetXXXメソッドを使ってください。 この例ではPreparedStatement.setStringまたはPreparedStatement.setCharacterStreamメソッドを使って、演算子に値を与えます。INSERT INTO myXmlTable(xcol) VALUES XMLPARSE( DOCUMENT CAST (? AS CLOB) PRESERVE WHITESPACE)
ADD | ||
ALL | ||
ALLOCATE | ||
ALTER | ||
AND | ||
ANY | ||
ARE | ||
AS | ||
ASC | ||
ASSERTION | ||
AT | ||
AUTHORIZATION | ||
AVG | ||
BEGIN | ||
BETWEEN | ||
BIGINT | ||
BIT | ||
BOOLEAN | ||
BOTH | ||
BY | ||
CALL | ||
CASCADE | ||
CASCADED | ||
CASE | ||
CAST | ||
CHAR | ||
CHARACTER | ||
CHECK | ||
CLOSE | ||
COALESCE | ||
COLLATE | ||
COLLATION | ||
COLUMN | ||
COMMIT | ||
CONNECT | ||
CONNECTION | ||
CONSTRAINT | ||
CONSTRAINTS | ||
CONTINUE | ||
CONVERT | ||
CORRESPONDING | ||
CREATE | ||
CURRENT | ||
CURRENT_DATE | ||
CURRENT_TIME | ||
CURRENT_TIMESTAMP | ||
CURRENT_USER | ||
CURSOR | ||
DEALLOCATE | ||
DEC | ||
DECIMAL | ||
DECLARE | ||
DEFAULT | ||
DEFERRABLE | ||
DEFERRED | ||
DELETE | ||
DESC | ||
DESCRIBE | ||
DIAGNOSTICS | ||
DISCONNECT | ||
DISTINCT | ||
DOUBLE | ||
DROP | ||
ELSE | ||
END | ||
END-EXEC | ||
ESCAPE | ||
EXCEPT | ||
EXCEPTION | ||
EXEC | ||
EXECUTE | ||
EXISTS | ||
EXPLAIN | ||
EXTERNAL | ||
FALSE | ||
FETCH | ||
FIRST | ||
FLOAT | ||
FOR | ||
FOREIGN | ||
FOUND | ||
FROM | ||
FULL | ||
FUNCTION | ||
GET | ||
GETCURRENTCONNECTION | ||
GLOBAL | ||
GO | ||
GOTO | ||
GRANT | ||
GROUP | ||
HAVING | ||
HOUR | ||
IDENTITY | ||
IMMEDIATE | ||
IN | ||
INDICATOR | ||
INITIALLY | ||
INNER | ||
INOUT | ||
INPUT | ||
INSENSITIVE | ||
INSERT | ||
INT | ||
INTEGER | ||
INTERSECT | ||
INTO | ||
IS | ||
ISOLATION | ||
JOIN | ||
KEY | ||
LAST | ||
LEFT | ||
LIKE | ||
LOWER | ||
LTRIM | ||
MATCH | ||
MAX | ||
MIN | ||
MINUTE | ||
NATIONAL | ||
NATURAL | ||
NCHAR | ||
NVARCHAR | ||
NEXT | ||
NO | ||
NOT | ||
NULL | ||
NULLIF | ||
NUMERIC | ||
OF | ||
ON | ||
ONLY | ||
OPEN | ||
OPTION | ||
OR | ||
ORDER | ||
OUTER | ||
OUTPUT | ||
OVERLAPS | ||
PAD | ||
PARTIAL | ||
PREPARE | ||
PRESERVE | ||
PRIMARY | ||
PRIOR | ||
PRIVILEGES | ||
PROCEDURE | ||
PUBLIC | ||
READ | ||
REAL | ||
REFERENCES | ||
RELATIVE | ||
RESTRICT | ||
REVOKE | ||
RIGHT | ||
ROLLBACK | ||
ROWS | ||
RTRIM | ||
SCHEMA | ||
SCROLL | ||
SECOND | ||
SELECT | ||
SESSION_USER | ||
SET | ||
SMALLINT | ||
SOME | ||
SPACE | ||
SQL | ||
SQLCODE | ||
SQLERROR | ||
SQLSTATE | ||
SUBSTR | ||
SUBSTRING | ||
SUM | ||
SYSTEM_USER | ||
TABLE | ||
TEMPORARY | ||
TIMEZONE_HOUR | ||
TIMEZONE_MINUTE | ||
TO | ||
TRANSACTION | ||
TRANSLATE | ||
TRANSLATION | ||
TRIM | ||
TRUE | ||
UNION | ||
UNIQUE | ||
UNKNOWN | ||
UPDATE | ||
UPPER | ||
USER | ||
USING | ||
VALUES | ||
VARCHAR | ||
VARYING | ||
VIEW | ||
WHENEVER | ||
WHERE | ||
WITH | ||
WORK | ||
WRITE | ||
XML | ||
XMLEXISTS | ||
XMLPARSE | ||
XMLQUERY | ||
XMLSERIALIZE | ||
YEAR |
機能 | 定義する仕様 | Derby |
SMALLINT | SQL92E | Yes |
INTEGER | SQL92E | Yes |
DECIMAL(p,s) | SQL92E | Yes |
NUMERIC(p,s) | SQL92E | Yes |
REAL | SQL92E | Yes |
FLOAT(p) | SQL92E | Yes |
DOUBLE PRECISION | SQL92E | Yes |
CHAR(n) | SQL92E | Yes |
機能 | 定義する仕様 | Derby |
NOT NULL | SQL92E | Yes (SYSCONSTRAINTSには記録されない) |
UNIQUE/PRIMARY KEY | SQL92E | Yes |
FOREIGN KEY | SQL92E | Yes |
CHECK | SQL92E | Yes |
View WITH CHECK OPTION | SQL92E | No ビューの更新はできない |
機能 | 定義する仕様 | Derby |
DECLARE, OPEN, FETCH, CLOSE | SQL92E | Yes JDBCのメソッド呼び出しが該当 |
UPDATE, DELETE CURRENT | SQL92E | Yes |
機能 | 定義する仕様 | Derby |
ALLOCATE / DEALLOCATE / GET / SET DESCRIPTOR | SQL92T | Yes JDBCのメソッド呼び出しにより実現 |
PREPARE / EXECUTE / EXECUTE IMMEDIATE | SQL92T | Yes JDBCのメソッド呼び出しにより実現 |
DECLARE, OPEN, FETCH, CLOSE, UPDATE, DELETE dynamic
cursor | SQL92T | Yes JDBCのメソッド呼び出しにより実現 |
DESCRIBE output | SQL92T | JDBCにより実現 |
機能 | 定義する仕様 | Derby |
TABLES | SQL92T | SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS |
VIEWS | SQL92T | SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS |
COLUMNS | SQL92T | SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS |
機能 | 定義する仕様 | Derby |
CREATE / DROP TABLE | SQL92T | Yes |
CREATE / DROP VIEW | SQL92T | Yes |
GRANT / REVOKE | SQL92T | Yes |
ALTER TABLE ADD COLUMN | SQL92T | Yes |
ALTER TABLE DROP COLUMN | SQL92T | Yes |
機能 | 定義する仕様 | Derby |
INNER JOIN | SQL92T | Yes |
natural join | SQL92T | No |
LEFT, RIGHT OUTER JOIN | SQL92T | Yes |
join condition | SQL92T | Yes |
named columns join | SQL92T | Yes |
機能 | 定義する仕様 | Derby |
単純なDATE, TIME, TIMESTAMP, INTERVAL | SQL92T | Yes ただしINTERVALは無い。 |
日時の定数 | SQL92T | Yes |
日時の演算 | SQL92T | Yes Javaのメソッドにて可能 |
日時の比較 | SQL92T | Yes |
述語: OVERLAPS | SQL92T | Yes Javaのメソッドにて可能 |
機能 | 定義する仕様 | Derby |
READ WRITE / READ ONLY | SQL92T | JDBCの利用、データベースの属性、記録媒体による |
RU, RC, RR, SER | SQL92T | Yes |
機能 | 定義する仕様 | Derby |
TABLE_PRIVILEGES | SQL92T | No |
COLUMNS_PRIVILEGES | SQL92T | No |
USAGE_PRIVILEGES | SQL92T | No |
機能 | 定義する仕様 | Derby |
UNION relaxation | SQL92I | Yes |
EXCEPT | SQL92I | Yes |
INTERSECT | SQL92I | Yes |
CORRESPONDING | SQL92I | No |
機能 | 定義する仕様 | Derby |
SET SESSION AUTHORIZATION | SQL92I | SET SCHEMAを使う |
CURRENT_USER | SQL92I | Yes |
SESSION_USER | SQL92I | Yes |
SYSTEM_USER | SQL92I | No |
機能 | 定義する仕様 | Derby |
TABLE CONSTRAINTS | SQL92I | SYS.SYSCONSTRAINTS |
REFERENTIAL CONSTRAINTS | SQL92I | SYS.SYSFOREIGNKEYS |
CHECK CONSTRAINTS | SQL92I | SYS.SYSCHECKS |
機能 | 定義する仕様 | Derby |
SQL_FEATURES | SQL92I/FIPS 127-2 | JDBCのDatabaseMetaDataを利用 |
SQL_SIZING | SQL92I/FIPS 127-2 | JDBCのDatabaseMetaDataを利用 |
機能 | 定義する仕様 | Derby |
POSITION式 | SQL92F | JavaのメソッドあるいはLOCATEを利用 |
UPPER/LOWER 関数 | SQL92F | Yes |
機能 | 定義する仕様 | Derby |
デリミトされた識別子 | SQL92E | Yes |
相互に関連した副問合せ | SQL92E | Yes |
挿入・更新・削除文 | SQL92E | Yes |
結合 | SQL92E | Yes |
Whereによる限定 | SQL92E | Yes |
Group by | SQL92E | Yes |
Having | SQL92E | Yes |
集約関数 | SQL92E | Yes |
Order by | SQL92E | Yes |
選択式 | SQL92E | Yes |
Select * | SQL92E | Yes |
SQLCODE | SQL92E | No SQL-92では推奨されない。 |
SQLSTATE | SQL92E | Yes |
ビューでのUNION、INTERSECTおよびEXCEPT | SQL92T | Yes |
暗黙の数値型変換 | SQL92T | Yes |
暗黙の文字列型変換 | SQL92T | Yes |
診断情報の取得 | SQL92T | JDBCのSQLExceptionsを利用 |
グループへの処理 | SQL92T | Yes |
selectの選択項目一覧における限定された* | SQL92T | Yes |
小文字の識別子 | SQL92T | Yes |
空値とすることのできる主キー | SQL92T | No |
複数のモジュールサポート | SQL92T | No (JDBCの一部ではなく、必要ではない。) |
参照性の削除処理 | SQL92T | CASCADE、SET NULL、RESTRICTやNO ACTION |
CAST関数 | SQL92T | Yes |
INSERT式 | SQL92T | Yes |
明示的な既定値 | SQL92T | Yes |
キーワードの緩和 | SQL92T | Yes |
Domainの定義 | SQL92I | No |
CASE式 | SQL92I | 部分的にサポート |
合成された文字列の定数 | SQL92I | 連結が利用できる |
LIKEの機能強化 | SQL92I | Yes |
UNIQUEの述語 | SQL92I | No |
表の利用情報 | SQL92I | SYS.SYSDEPENDS |
中間的な情報スキーマ | SQL92I | JDBCのDatabaseMetaDataおよびDerbyのシステム表が利用可 |
副プログラムのサポート | SQL92I | より機能が豊富なJDBCでは関係が無い。 |
中間的なSQLへのフラグ付け | SQL92I | No |
スキーマの操作 | SQL92I | Yes |
長い識別子 | SQL92I | Yes |
両側への外部結合 | SQL92I | No |
タイムゾーンの指定 | SQL92I | No |
スクロール可能なカーソル | SQL92I | 部分的 (JDBC2.0ではスクロール可能なinsensitiveなカーソル。) |
中間的な集合関数のサポート | SQL92I | 部分的に実現 |
文字セットの定義 | SQL92I | Javaのロケールをサポート |
文字セットへの名前付け | SQL92I | Javaのロケールをサポート |
スカラー副問合せの値 | SQL92I | Yes |
拡張されたnull述部 | SQL92I | Yes |
制約の管理 | SQL92I | Yes (ADD/DROP CONSTRAINT) |
FOR BIT DATA 型 | SQL92F | Yes |
Assertion 制約 | SQL92F | No |
一時表 | SQL92F | DECLARE GLOBAL TEMPORARY TABLEで、部分的に実現。 |
完全な動的SQL | SQL92F | No |
完全なvalues式 | SQL92F | Yes |
真の値判定 | SQL92F | Yes |
導出表をFROMにおける | SQL92F | Yes |
アンダースコアを後につけることができる | SQL92F | Yes |
Indicatorデータ型 | SQL92F | JDBCとは関連しない。 |
参照する名前の順番 | SQL92F | No |
完全なSQLのフラグ付け | SQL92F | No |
行および表の構築子 | SQL92F | Yes |
カタログ名の限定子 | SQL92F | No |
単純表 | SQL92F | No |
CHECK制約での副問合せ | SQL92F | No ただしJavaのメソッドで同等のことができる。 |
Union join | SQL92F | No |
Collationやtranslation | SQL92F | Javaのロケールが利用可能 |
参照性の更新処理 | SQL92F | RESTRICTおよびNO ACTION。 トリガによりその他も可能。 |
ALTER domain | SQL92F | No |
INSERT 列権限 | SQL92F | No |
参照性のMATCH型 | SQL92F | No |
ビューのCHECK制約の機能強化 | SQL92F | No、ビューは更新できない。 |
Session管理 | SQL92F | JDBCを利用 |
接続管理 | SQL92F | JDBCを利用 |
自己参照的な操作 | SQL92F | Yes |
insensitiveなカーソル | SQL92F | Yes JDBC 2.0を通して可能 |
完全な集合関数 | SQL92F | 部分的な実現 |
カタログへのフラグ付け | SQL92F | No |
局所的な表への参照 | SQL92F | No |
カーソル全体の更新 | SQL92F | No |
列名 | 型 | 長さ | 空許容 | 内容 |
ALIASID | CHAR | 36 | 不可 | aliasの一意な識別子 |
ALIAS | VARCHAR | 128 | 不可 | alias |
SCHEMAID | CHAR | 36 | 可 | 将来の利用のために予約 |
JAVACLASSNAME | LONGVARCHAR | 255 | 不可 | Javaのクラス名 |
ALIASTYPE | CHAR | 1 | 不可 | 'F' (関数)'P' (手続き) |
NAMESPACE | CHAR | 1 | 不可 | 'F' (関数)'P' (手続き) |
SYSTEMALIAS | BOOLEAN | ' | 不可 | 可 (システムが提供あるいは組込みのalias) false (ユーザが作成したalias) |
ALIASINFO |
このクラスは公開APIの一部ではない。 | ' | 可 | alias固有の追加情報をカプセル化したインターフェイス |
SPECIFICNAME | VARCHAR | 128 | 不可 | システムが作成した識別子 |
• | 主キー (GRANTEE, TABLEID, TYPE, GRANTOR) | |
• | 一意キー (COLPERMSID) | |
• | 外部キー (TABLEID references SYS.SYSTABLES) |
列名 | 型 | 長さ | Null可 | 内容 |
COLPERMSID | CHAR | 36 | 不可 | 依存関係管理機能にて、ビューやトリガ、制約の、列ごとの権限への依存を処理するために使われます。 |
GRANTEE | VARCHAR | 30 | 不可 | 権限が与えられたユーザの認証識別子です。 |
GRANTOR | VARCHAR | 30 | 不可 | 権限を与えたユーザの認証識別子です。データベース上の情報を保有するユーザだけがその情報への権限を与えることができます。 |
TABLEID | CHAR | 36 | 不可 | 権限が与えられた表の一意な識別子です。 |
TYPE | CHAR | 1 | 不可 | 権限を付与できない場合、とりうる値は、 です。権限を付与できる場合、とりうる値は、
|
COLUMNS | org.apache.derby.iapi.services.io.FormatableBitSet | ' | 不可 | 権限が適用される列の一覧です。 このクラスはAPIとして公開されていません。 |
列名 | 型 | 長さ | 空許容 | 内容 |
REFERENCEID | CHAR | 36 | 不可 | 表の識別子(SYSTABLES.TABLEIDと結合される) |
COLUMNNAME | CHAR | 128 | 不可 | 列・パラメータ名 |
COLUMNNUMBER | INT | 4 | 不可 | 表中の列位置 |
COLUMNDATATYPE | org.apache.derby.catalog. TypeDescriptor このクラスは公開APIではない。 | ' | 不可 | 情報の、精度、長さ、目盛り、空許容、型名、記録タイプを記述するシステムの型。 |
COLUMNDEFAULT | java.io.Serializable | ' | 可 | 表について、列の既定値を記述する。この表に記録されたオブジェクトのtoString()メソッドにより、CREATE TABLEやALTER TABLE文で指定された既定値が文字列として返る。 |
COLUMNDEFAULTID | CHAR | 36 | 可 | 既定値の識別値 |
AUTOINCREMENT COLUMNVALUE | BIGINT | ' | 可 | 列が識別子列であれば、次の値をとる。 |
AUTOINCREMENT COLUMNSTART | BIGINT | ' | 可 | 列が識別子列であれば、(指定された場合)開始値をとる。 |
AUTOINCREMENT COLUMNINC | BIGINT | ' | 可 | 列が識別値列であれば、(指定された場合)自動的な増分の値をとる。 |
列名 | 型 | 長さ | 空許容 | 内容 |
SCHEMAID | CHAR | 36 | 不可 | コングロマリットのスキーマ識別子 |
TABLEID | CHAR | 36 | 不可 | 表の識別子(SYSTABLES.TABLEIDと結合される。) |
CONGLOMERATENUMBER | BIGINT | 8 | 不可 | コングロマリット(ヒープあるいは索引)のコングロマリット識別子 |
CONGLOMERATENAME | VARCHAR | 128 | 可 | もし索引であれば索引名。そうではないなら表の識別子 |
ISINDEX | BOOLEAN | 1 | 不可 | 索引か否か。 |
DESCRIPTOR | このクラスは公開されたAPIでは無い。 | ' | 可 | 索引を記述するシステム型 |
ISCONSTRAINT | BOOLEAN | 1 | 可 | 制約の為にシステムが自動的に出力したものか。 |
CONGLOMERATEID | CHAR | 36 | 不可 | コングロマリットの一意な識別子 |
列名 | 型 | 長さ | 空許容 | 内容 |
CONSTRAINTID | CHAR | 36 | 不可 | 制約の識別子 |
TABLEID | CHAR | 36 | 不可 | 表の識別子(SYSTABLES.TABLEIDを参照) |
CONSTRAINTNAME | VARCHAR | 128 | 不可 | 制約名 (ユーザが指定しない場合、システムが内部的に生成) |
TYPE | CHAR | 1 | 不可 | P (主キー)、U (一意性)、C (チェック)、
あるいは F (外部キー) |
SCHEMAID | CHAR | 36 | 不可 | 制約が所属するスキーマの識別子(SYSSCHEMAS.SCHEMAIDを参照) |
STATE | CHAR | 1 | 不可 | 有効ならE、無効ならD |
REFERENCECOUNT | INTEGER | 1 | 不可 | この制約を参照する外部参照整合の数。制約が主キー・一意性制約である場合のみ、この値は0より大きい。 |
• | 依存情報にはビュー、制約、トリガがあります。 | |
• | 被依存情報には表、コングロマリット、制約、権限があります。 |
列名 | 型 | 長さ | 空許容 | 内容 |
DEPENDENTID | CHAR | 36 | 不可 | 依存情報の一意な識別子 |
DEPENDENTFINDER | org.apache.derby.catalog. DependableFinder: この型は公開されたAPIではない。 | 1 | 不可 | 依存している表や制約、トリガを記述するシステム型 |
PROVIDERID | CHAR | 36 | 不可 | 被依存情報の一意な識別子 |
PROVIDERFINDER | org.apache.derby.catalog. DependableFinder この型は公開されたAPIではない。 | 1 | false | 被依存情報である、表、コングロマリット、制約、権限を記述する情報。 |
列名 | 型 | 長さ | 空許容 | 内容 |
CONSTRAINTID | CHAR | 36 | false | unique identifier for the foreign key constraint (join
with SYSCONSTRAINTS. CONSTRAINTID) |
CONGLOMERATEID | CHAR | 36 | 不可 | 外部参照制約のための索引の一意な識別子(SYSCONGLOMERATES. CONGLOMERATEIDを参照する。) |
KEYCONSTRAINTID | CHAR | 36 | 不可 | この外部参照制約により参照される、主キー・一意性制約の一意な識別子(SYSKEYS.CONSTRAINTIDあるいはSYSCONSTRAINTS.
CONSTRAINTID) |
DELETERULE | CHAR | 1 | 不可 | NO ACTION (既定)ならR、RESTRICTならS、CASCADEならC、SET NULLならU |
UPDATERULE | CHAR | 1 | 不可 | NO ACTION(既定)ならR、restrictならS |
• | 主キー (GRANTEE, ALIASID, GRANTOR) | |
• | 一意キー (ROUTINEPERMSID) | |
• | 外部キー (ALIASIDがSYS.SYSALIASESを参照する。) |
列名 | 型 | 長さ | 空許容 | 内容 |
ROUTINEPERMSID | CHAR | 36 | 不可 | 依存性管理機能にて、ビュー・トリガ・制約のルーチンのルーチンレベルの権限への依存性を追跡するために使われる。 |
GRANTEE | VARCHAR | 30 | 不可 | 権限の付与されたユーザの認証識別子。 |
GRANTOR | VARCHAR | 30 | 不可 | 権限を付与したユーザの認証識別子。権限は情報の所有者によってのみ付与される。 |
ALIASID | CHAR | 36 | 不可 | 必要な権限の識別子。もしPERMTYPEが'E'ならALIASIDはSYS.SYSALIASES表を参照する。そうでなければ、ALIASIDはSYS.SYSTABLES表を参照する。 |
GRANTOPTION | CHAR | 1 | 不可 | GRANTEEがルーチンの所有者ならば指定する。有効な値はYあるいはN。 |
列名 | 型 | 長さ | 空許容 | 内容 |
STATID | CHAR | 36 | 不可 | 統計の一意な識別子 |
REFERENCEID | CHAR | 36 | 不可 | 統計がとられたコングロマリット(SYSCONGLOMERATES. CONGLOMERATEIDを参照) |
TABLEID | CHAR | 36 | 不可 | 情報の採取された表 |
CREATIONTIMESTAMP | TIMESTAMP | ' | 不可 | 統計が作成/更新された時 |
TYPE | CHAR | 1 | 不可 | 統計の種類 |
VALID | BOOLEAN | ' | 不可 | 統計はまだ有効か |
COLCOUNT | INTEGER | ' | 不可 | 統計の列数 |
STATISTICS | このクラスは公開APIではない。 | ' | 可 | 統計情報 |
列名 | 型名 | 長さ | 空許容 | 内容 |
STMTID | CHAR | 36 | 不可 | 文の一意な識別子 |
STMTNAME | VARCHAR | 128 | 不可 | 文の名前 |
SCHEMAID | CHAR | 36 | 不可 | 文の属するスキーマ |
TYPE | CHAR | 1 | 不可 | 常に'S' |
VALID | BOOLEAN | ' | 不可 | 有効ならTRUE、無効ならFALSE |
TEXT | LONG VARCHAR | ' | 不可 | 文のテキスト |
LASTCOMPILED | TIMESTAMP | ' | 可 | 文がコンパイルされた時 |
COMPILATION SCHEMAID | CHAR | 36 | 不可 | 文のあるスキーマの識別子 |
USINGTEXT | LONG VARCHAR | ' | 可 | CREATE STATEMENTとALTER STATEMENT文のUSING節のテキスト |
• | 主キー (GRANTEE, TABLEID, GRANTOR) | |
• | 一意キー (TABLEPERMSID) | |
• | 外部キー (TABLEID references SYS.SYSTABLES) |
列名 | 型 | 長さ | Null可 | 内容 |
TABLEPERMSID | CHAR | 36 | 不可 | 依存関係管理機能において、ビューやトリガ、制約の、テーブル単位の権限への依存を処理するために使います。 |
GRANTEE | VARCHAR | 30 | 不可 | 権限が与えられたユーザの認証識別子です。 |
GRANTOR | VARCHAR | 30 | 不可 | 権限を与えたユーザの認証識別子です。データベース上の情報の所有者だけが権限を与えることができます。 |
TABLEID | CHAR | 36 | 不可 | 権限が与えられたテーブルの一意な識別子です。 |
SELECTPRIV | CHAR | 1 | 不可 | SELECT権限が与えられているかをあらわします。有効な値は、'y'(付与されたものではない権限を持つ)
'Y'(付与された権限を持つ)
'N'(権限を持たない)です。 |
DELETEPRIV | CHAR | 1 | 不可 | DELETE権限が与えられているかをあらわします。
有効な値は、'y'(付与されたものではない権限を持つ)
'Y'(付与された権限を持つ)
'N'(権限を持たない)です。 |
INSERTPRIV | CHAR | 1 | 不可 | INSERT権限が与えられているかをあらわします。
有効な値は、'y'(付与されたものではない権限を持つ)
'Y'(付与された権限を持つ)
'N'(権限を持たない)です。 |
UPDATEPRIV | CHAR | 1 | 不可 | UPDATE権限が与えられているかをあらわします。
有効な値は、'y'(付与されたものではない権限を持つ)
'Y'(付与された権限を持つ)
'N'(権限を持たない)です。 |
REFERENCEPRIV | CHAR | 1 | 不可 | REFERENCE権限が与えられているかをあらわします。
有効な値は、'y'(付与されたものではない権限を持つ)
'Y'(付与された権限を持つ)
'N'(権限を持たない)です。 |
TRIGGERPRIV | CHAR | 1 | 不可 | TRIGGER権限が与えられているかをあらわします。有効な値は、'y'(付与されたものではない権限を持つ)
'Y'(付与された権限を持つ)
'N'(権限を持たない)です。 |
列名 | 型 | 長さ | 空許容 | 内容 |
TRIGGERID | CHAR | 36 | 不可 | トリガの一意な識別子 |
TRIGGERNAME | VARCHAR | 128 | 不可 | トリガの名称 |
SCHEMAID | CHAR | 36 | 不可 | トリガのスキーマの識別子(SYSSCHEMAS. SCHEMAIDを参照) |
CREATIONTIMESTAMP | TIMESTAMP | ' | 不可 | トリガの作成された時。 |
EVENT | CHAR | 1 | 不可 | 'U'は更新、 'D'は削除、'I'は挿入を表す。 |
FIRINGTIME | CHAR | 1 | 不可 | 'B'は先、 'A'は後を表す。 |
TYPE | CHAR | 1 | 不可 | 'R'は行、'S'は文を表す。 |
STATE | CHAR | 1 | 不可 | 'E'は有効、'D'は無効を表す。 |
TABLEID | CHAR | 36 | 不可 | トリガの定義された表の識別子。 |
WHENSTMTID | CHAR | 36 | 可 | WHEN節があるときのみ利用(現在はサポートしていない。) |
ACTIONSTMTID | CHAR | 36 | 可 | トリガされるSQL文の、格納された準備済み文の識別子
(SYSSTATEMENTS. STMTIDを参照) |
REFERENCEDCOLUMNS | org.apache.derby.catalog. ReferencedColumns: このクラスは公開APIではない。 | ' | 可 | UPDATEトリガが参照する列の記述子 |
TRIGGERDEFINITION | LONG VARCHAR | ' | 可 | 実行するSQL文のテキスト |
REFERENCINGOLD | BOOLEAN | ' | true | whether or not the OLDREFERENCINGNAME, if non-null, refers
to the OLD row or table |
REFERENCINGNEW | BOOLEAN | ' | 真 | もし空でなければ、NEWREFERENCINGNAMEが新しい行や表を参照するか否か。 |
OLDREFERENCINGNAME | VARCHAR | 128 | 真 | REFERENCING OLD AS節を利用した場合の仮名称 |
NEWREFERENCINGNAME | VARCHAR | 128 | 真 | REFERENCING NEW AS節を利用した場合の仮名称 |
SQLSTATE | 文言 |
01001 | 既に削除済みの行を更新または削除しようとしました。更新または削除された行はありません。 |
01003 | 列関数の引数から NULL 値が除去されませんでした。 |
01006 | 特権がユーザー <認証識別子>から取り消されません。
|
0100E | XX が戻そうとしている結果セットが多すぎます。 |
01500 | 表<表名>の制約<制約名>がドロップされました。 |
01501 | ビュー <ビュー名gt; がドロップされました。 |
01502 | 表<表名>のトリガー <トリガ名>がドロップされました。 |
01503 | 表 <表名> の列 <列名> は、非ヌル制約の追加により変更されました。 |
01504 | 新規索引は既存索引 <索引名> と重複しています。 |
01505 | 値 <値名> は切り捨てることができません。 |
01522 | 新規に定義されたシノニム '<別名の名前>' は、現在未定義のオブジェクト '<情報の名前>' に解決されました。 |
01J01 | データベース '<データベース名>' は作成されませんでした。代わりに既存のデータベースに接続されました。 |
01J02 | スクロール・センシティブ・カーソルは、現在インプリメントされていません。 |
01J04 | 列 '<列名>' に対するクラス '<クラス名>' は java.io.Serializable または java.sql.SQLData をインプリメントしていません。 インスタンスを保管するためには、これらのインターフェースのうちの 1 つをインプリメントしている必要があります。 |
01J05 | データベースのアップグレードが成功しました。 今からアップグレードされたデータベースを使用できます。 保管された準備済みステートメントの再妥当性検査に失敗しました。 失敗の詳細については、次の例外を参照してください。 |
01J06 | ResultSet は更新できません。 照会は、更新可能な ResultSet を生成するように修飾されていません。 |
01J07 | グローバル・トランザクションにおける ResultSetHoldability は ResultSet.CLOSE_CURSORS_AT_COMMIT に制限されています。 |
01J08 | ResultSet 型 <結果セット型> を開くことができません。 ResultSet 型 <結果セット型> が開かれました。 |
01J10 | スクロール・センシティブ結果セットはサーバーでサポートされていません。前方スクロール専用カーソルに再マップしています。 |
01J12 | サーバーからメッセージ・テキストを取得できません。 次の例外を参照してください。 ストアード・プロシージャー SYSIBM.SQLCAMESSAGE は、サーバーにインストールされていません。 データベース管理者に連絡してください。 |
01J13 | 戻された行数 (<数>) は、整数として格納するには大きすぎます。戻された値は切り捨てられます。 |
01J14 | 先に認証を使用可能にせずに SQL 許可が使用されています。 |
SQLSTATE | 文言 |
07000 | 現行ステートメントの少なくとも 1 つのパラメーターが初期化されていません。 |
07004 | パラメーター <引数名> は <手続名> プロシージャー・パラメーターであり、実行の前に CallableStatement.registerOutParameter に登録される必要があります。 |
07009 | 入力パラメーターがありません。 |
SQLSTATE | 文言 |
08000 | 不明の割り込みにより、接続がクローズされました。 |
08000 | アクティブ・トランザクションがある場合、接続はクローズできません。 トランザクションは開いたままであり、接続はクローズされませんでした。 |
08001 | セキュリティー・トークンがネットワーク・プロトコルにより許可される最大長を超えているため、接続を確立できませんでした。 |
08001 | ユーザー ID の長さがゼロであるかネットワーク・プロトコルにより許可される最大長を超えているため、接続を確立できませんでした。 |
08001 | パスワードの長さがゼロであるかネットワーク・プロトコルにより許可される最大長を超えているため、接続を確立できませんでした。 |
08001 | 必要な Derby DataSource プロパティー <属性名> が設定されていません。 |
08001 | <エラー>: ポート <ポート番号> のサーバー <サーバ名> への接続中にメッセージ <文言> でエラーになりました。 |
08001 | SocketException: '<エラー>' |
08001 | ソケット '<エラー>' でストリームを開けません。 |
08001 | ユーザー ID の長さ (<数>) が 1 から <数> の範囲外です。 |
08001 | パスワードの長さ (<値>) が 1 から <数> の範囲外です。 |
08001 | ユーザー ID を NULL にすることはできません。 |
08001 | パスワードを NULL にすることはできません。 |
08001 | データベース名 '<データベース名>' がネットワーク・プロトコルにより許可される最大長を超えているため、接続を確立できませんでした。 |
08003 | 現行接続なし。 |
08003 | クローズされた PooledConnection に対する getConnection() は無効です。 |
08003 | 接続のクローズ後に LOB メソッドが呼び出されました。 |
08003 | 基礎となる物理接続が失効しているかクローズされています。 |
08004 | 接続が拒否されました: <接続名> |
08004 | 接続認証の障害が発生しました。 理由: <理由の説明>。 |
08004 | データベース <データベース名> が検出されなかったため接続は拒否されました。 |
08004 | データベース接続が拒否されました。 |
08004 | User '<認証ID>' cannot shut down database '<データベース名>'. Only the database owner can perform this operation. |
08004 | User '<認証ID>' cannot (re)encrypt database '<データベース名>'. Only the database owner can perform this operation. |
08004 | User '<認証ID>' cannot hard upgrade database '<データベース名>'. Only the database owner can perform this operation. |
08006 | 接続のリセット中にエラーが発生し、接続が終了されました。 詳細については、付随する例外を参照してください。 |
08006 | データベース '<データベース名>' がシャットダウンされました。 |
SQLSTATE | 文言 |
0A000 | フィーチャーはインプリメントされていません: <機能名>。 |
0A000 | DRDA コマンド <コマンド名> は現在インプリメントされていません。 接続は終了されました。 |
0A000 | JDBC メソッドはまだインプリメントされていません。 |
0A000 | JDBC メソッド <メソッド名> はサーバーでサポートされていません。 サーバーをアップグレードしてください。 |
0A000 | resultSetHoldability プロパティー <属性名> はサポートされていません。 |
0A000 | cancel() はサーバーでサポートされていません。 |
0A000 | セキュリティー・メカニズム '<メカニズム名>' はサポートされていません。 |
0A000 | データ型 '<データ型名>' はサポートされていません。 |
SQLSTATE | 文言 |
21000 | スカラー副照会は、単一行しか戻せません。 |
SQLSTATE | 文言 |
22001 | <値> '<値>' を長さ <値> に縮小しようとして、切り捨てエラーが発生しました。 |
22003 | 結果値は、データ型 <データ型名> の範囲外です。 |
22003 | 年 (<値>) が最大の '<値>' を超えています。
|
22003 | 使用可能な 10 進数は、31 桁までです。 |
22003 | '<データ型名>' から <データ型名> への数値データ型変換中にオーバーフローが発生しました。 |
22004 | 長さ (<数>) が、このデータ型の最大長 (<データ型名>) を超えています。 |
22005 | 型 '<型名>' の値を型 '<型名>' に変換することはできません。このエンコードはサポートされていません。 |
22005 | 必要な文字コンバーターを使用できません。 |
22005 | Unicode ストリングを EBCDIC ストリングに変換することはできません。 |
22005 | 認識されない JDBC 型です。 型: <型名>、columnCount: <値>、columnIndex: <値>。 |
22005 | パラメーター <パラメータ名> に対して無効な JDBC 型です。 |
22005 | 認識されない Java SQL 型 <データ型名> です。 |
22005 | 型 '<データ型名>' のデータ値から型 '<データ型名>' のデータ値を取得しようとしました。 |
22007 | 日時値のストリング表記が範囲外です。 |
22007 | 日時値のストリング表記の構文が正しくありません。 |
22008 | '<引数>' は <関数名> 関数に対して無効な引数です。 |
2200L | XML 列に割り当てる値は、整形式 DOCUMENT ノードである必要があります。 |
2200M | 無効な XML DOCUMENT: <構文解析器のエラー> |
2200V | <演算子名> 演算子に対して無効なコンテキスト項目です。コンテキスト項目は整形式 DOCUMENT ノードである必要があります。 |
2200W | XQuery シリアライゼーション・エラー: 1 つ以上の最上位属性ノードのシリアライズを試行しました。 |
22011 | SUBSTR 関数の 2 番目または 3 番目の引数が範囲外です。 |
22012 | ゼロ除算を試行しています。 |
22013 | 負の数値 '<値>' の平方根を取ろうとしています。 |
22014 | LOCATE の開始位置が無効です。この位置は正の整数にする必要があります。 検索を開始する索引は '<検索文字列>' です。 検索するストリングは '<元となる文字列>' です。 ストリングの検索元は '<開始位置>' です。 |
22015 | 無効なデータ変換です。要求された変換を行うと、<値>の精度が失われます。 |
22015 | '<関数名>' 関数は、次の型のセットでは許可されません。 第 1 オペランドは型 '<型名>' です。 第 2 オペランドは型 '<型名>' です。 第 3 オペランド (開始位置) は型 '<型名>' です。 |
22018 | 型 <型名> に対して無効な文字ストリング・フォーマットです。 |
22019 | 無効なエスケープ・シーケンスです: <シーケンス名>。 エスケープ・ストリングは、1 文字にする必要があります。 NULL でも 2 文字以上でもいけません。 |
22020 | Invalid trim string, '<文字列>'. The trim string must be exactly one character or NULL. It cannot be more than one character. |
22025 | エスケープ文字の後にはエスケープ文字 ''_'' または ''%'' が必要です。 エスケープ文字の後にこれ以外の文字を続けたり、エスケープ文字をパターンの終わりに指定することはできません。 |
22027 | 組み込み TRIM() 関数は、単一トリム文字のみをサポートします。 LTRIM() および RTRIM() 組み込み関数は複数のトリム文字をサポートします。 |
22028 | ストリングが最大長である <数> を超えています。 |
22501 | NULL の ESCAPE 文節は未定義の結果を戻すため、許可されていません。 |
SQLSTATE | 文言 |
23502 | 列 '<列名> は NULL 値を受け入れられません。 |
23503 | 表 '<表名>' 上の <値>' が原因で、キー <キー名> の外部キー制約 '<制約名>' 違反が発生しました。 ステートメントはロールバックされました。 |
23505 | このステートメントは、ユニークまたは主キー制約、または '<値>' 上で定義された '<値>' によって識別されるユニーク索引において重複キー値の原因となる可能性があったため、打ち切られました。 |
23513 | 表 '<表名>' で INSERT または UPDATE を実行しているときにチェック制約 '<制約名>' の違反が発生しました。 |
SQLSTATE | 文言 |
24000 | 無効なカーソル状態 - 現在行がありません。 |
24501 | 指定されたカーソルがオープンされていません。 |
SQLSTATE | 文言 |
25000 | 無効なトランザクション状態です。 |
25001 | トランザクションがまだアクティブなときに接続をクローズすることはできません。 |
25501 | アクティブ・トランザクションに接続読み取り専用プロパティーを設定できません。 |
25502 | 読み取り専用接続、ユーザー、またはデータベースに対する、SQL データ変更は許可されていません。 |
25503 | 読み取り専用接続、ユーザー、またはデータベースに対する DDL は許可されていません。 |
25505 | 読み取り専用ユーザーまたは読み取り専用データベースのユーザーは、接続に対する読み取り専用モードを使用不可にすることはできません。 |
SQLSTATE | 文言 |
28502 | ユーザー名 ''<認証識別子>'' は無効です。 |
SQLSTATE | 文言 |
2D521 | setAutoCommit(true) は、グローバル・トランザクションの間は無効です。 |
2D521 | アプリケーション実行環境では COMMIT または ROLLBACK は無効です。 |
SQLSTATE | 文言 |
38000 | 式を評価している間に例外 '<例外>' がスローされました。 |
38001 | 外部ルーチンは SQL ステートメントは実行できません。 |
38002 | ルーチンがデータを変更しようとしましたが、そのルーチンは MODIFIES SQL DATA として定義されていませんでした。 |
38004 | ルーチンがデータを読み取ろうとしましたが、そのルーチンは READS SQL DATA として定義されていませんでした。 |
SQLSTATE | 文言 |
39004 | プリミティブ型 '<型>' のパラメーターを取るメソッドに NULL 値を渡すことはできません。 |
SQLSTATE | 文言 |
3B001 | SAVEPOINT、<SAVEPOINT名> が存在しないか、または、現行トランザクションでアクティブでありません。 |
3B002 | セーブポイントの最大数に到達しました。 |
3B501 | パスされた名前の SAVEPOINT はすでに現行トランザクションに存在します。 |
3B502 | RELEASE または ROLLBACK TO SAVEPOINT が指定されましたが、セーブポイントが存在しません。 |
SQLSTATE | 文言 |
40001 | デッドロックが原因でロックを獲得できませんでした。ロックと待機のサイクル:\n<ロックサイクル>。 キャンセル対象としてデータベース・エンジンによって選択されたステートメントの XID : <トランザクション識別子>。 |
40XC0 | 非活動ステートメント。 原因として、このステートメント内でトランザクション重大度エラーをキャッチしたことが考えられます。 |
40XD0 | コンテナーがクローズされました。 |
40XD1 | コンテナーが読み取り専用モードでオープンされました。 |
40XD2 | コンテナー <コンテナ名> をオープンできません。ドロップされたか、存在しません。 |
40XL1 | 要求時間内にロックを獲得できませんでした |
40XL2 | 要求時間内にロックを獲得できませんでした。 lockTable ダンプ: <表のダンプ> |
40XT0 | RawStore モジュールで内部エラーが確認されました。 |
40XT1 | トランザクションのコミット中に例外がスローされました。 |
40XT2 | SAVEPOINT のロールバック中に例外がスローされました。 |
40XT4 | まだアクティブなトランザクションをクローズしようとしました。 トランザクションはアボートされました。 |
40XT5 | 内部トランザクション中に例外がスローされました。 |
40XT6 | データベースは静止状態です。トランザクションを活動化できません。 静止状態が終わるまでしばらくお待ちください。 |
40XT7 | オペレーションは内部トランザクションではサポートされていません。 |
SQLSTATE | 文言 |
42000 | 構文エラーまたはアクセス規則違反。詳しくは追加エラーを参照してください。 |
42500 | ユーザー '<認証ID>' は、表 '<スキーマ名>'.'<表名>' に対する <許可種類> 許可を与えられていません。 |
42501 | ユーザー '<認証ID>' は、表 '<スキーマ名>'.'<表名>'に対する GRANT ステートメントの <許可種類> 許可を与えられていません。 |
42502 | ユーザー '<認証ID>' は、表 '<スキーマ名>'.'<表名>' の列 '<列名>' に対する <許可種類> 許可を与えられていません。 |
42503 | ユーザー '<認証ID>' は、表 '<スキーマ名>'.'<表名>' の列 '<列名>' に対する GRANT ステートメントの <許可種類> 許可を与えられていません。 |
42504 | ユーザー '<認証ID>' は、<オブジェクト名> '<スキーマ名>'.'<表名>' に対する実行権限を与えられていません。 |
42505 | ユーザー '<認証ID>' は、<オブジェクト名> '<スキーマ名>'.'<表名>' に対する GRANT ステートメントの実行権限を与えられていません。 |
42506 | ユーザー '<認証ID>' は <オブジェクト名> '<スキーマ名>'.'<表名>' の所有者ではありません。 |
42507 | ユーザー '<認証ID>' は、スキーマ '<スキーマ名>' でオペレーションを実行できません。 |
42508 | ユーザー '<認証ID>' は、スキーマ '<スキーマ名>' を作成できません。 データベース所有者のみがこのステートメントを実行できます。 |
42509 | 指定された付与オペレーションまたは取り消しオペレーションは、オブジェクト '<オブジェクト名>' に対して許可されません。 |
4250A | ユーザー '<認証ID>' は、オブジェクト '<スキーマ名>'.'<オブジェクト名>' に対する <許可名> 許可を与えられていません。 |
4250B | 無効なデータベース許可プロパティー '<値>=<値>'。 |
4250C | ユーザー '<認証ID>' を、読み取り専用許可リストとフル・アクセス許可リストの両方に入れることはできません。 |
4250D | アクセス・リスト '<リスト名>' で反復されたユーザー '<認証ID>'。 |
4250E | 内部エラー: ステートメント許可リスト内に無効な <認証ID> ID が存在します。 |
42X24 | Column <columnName> is referenced in the HAVING clause but is not in the GROUP BY list. |
42X25 | '<関数名>' 関数は、'<1>' 型では許可されません。 |
42X26 | 列 '<列名>' に対するクラス '<クラス名>' は存在しないか、アクセス不能です。 これは、このクラスが public でない場合に発生することがあります。 |
42X28 | 削除表 '<表名>' はカーソル '<カーソル名>' のターゲットではありません。 |
42X29 | 更新表 '<表名>' はカーソル '<カーソル名>' のターゲットではありません。 |
42X30 | カーソル '<カーソル名>' が見つかりません。 自動コミットがオフになっていることを確認してください。 |
42X31 | 列 '<列名>' はカーソル '<カーソル名>' の FOR UPDATE リストにありません。 |
42X32 | 派生列リストの列数は、表 '<表名>' の列数と一致している必要があります。 |
42X33 | 派生列リストに、重複する列名 '<列名>' があります。 |
42X34 | 選択リストに ? パラメーターがあります。 これは許可されません。 |
42X35 | '<値>' の両方のオペランドを ? パラメーターにすることはできません。 |
42X36 | '<演算子>' 演算子は、? パラメーターをオペランドとして取ることはできません。 |
42X37 | 単項 '<演算子>' 演算子は、'<型>' 型では許可されません。 |
42X38 | 'SELECT *' は、EXISTS および NOT EXISTS 副照会でのみ許可されます。 |
42X39 | 副照会は、単一列を戻すことしか許可されません。 |
42X40 | NOT ステートメントがブールでないオペランドを持っています。 NOT のオペランドは、TRUE、FALSE、または UNKNOWN として評価する必要があります。 |
42X41 | FROM リストのプロパティー文節ではプロパティー '<プロパティー 名>' は無効です (このプロパティーは '<値>' に設定されていました)。 |
42X42 | 列 '<列名>' は FOR UPDATE リストの一部であるため、その列に対する相関名は許可されません。 |
42X43 | クラス/オブジェクト '<クラス名>' に対して戻された ResultSetMetaData が NULL でした。 このクラスを外部仮想表として使用するためには、ResultSetMetaData を NULL にすることはできません。 |
42X44 | 列仕様に無効な長さ '<数>' が指定されています。 |
42X45 | <型> は <値> の引数番号 <値> に対して無効な型です。 |
42X46 | '<関数名>' という名前の関数が複数存在します。 完全なシグニチャーか固有の名前を使用してください。 |
42X47 | '<手続名>' という名前のプロシージャーが複数存在します。 完全なシグニチャーか固有の名前を使用してください。 |
42X48 | 値 '<値>' は <値> の有効な精度ではありません。 |
42X49 | 値 '<値>' は有効な整数リテラルではありません。 |
42X50 | メソッドの呼び出し <メソッド名>.<値>(<値>) に一致するメソッドが見つかりませんでした。オブジェクト型とプリミティブ型のすべての組み合わせと、このメソッド呼び出しが持つ可能性のあるパラメーターに可能な型変換をすべて試しましたが、見つかりませんでした。 このメソッドは存在するが public および (または) 静的でないか、あるいはパラメーター型がメソッド起動変換可能でない可能性があります。 |
42X51 | クラス '<クラス名>' は存在しないか、アクセス不能です。 これは、このクラスが public でない場合に発生することがあります。 |
42X52 | Java プリミティブ型 '<型>' の受信側を使ってメソッド ('<メソッド名>') を呼び出すことは許可されていません。 |
42X53 | LIKE 述部は、''CHAR'' または ''VARCHAR'' オペランドしか持つことができません。 型 '<型>' は許可されません。 |
42X54 | Java メソッド '<メソッド名>' は受信側として ? を持っています。 これは許可されません。 |
42X55 | 表名 '<表名>' は '<値>' と同じにする必要があります。 |
42X56 | ビュー列リスト内の列数が、''{0}'' のビュー定義にある、基本となる照会式の列数と一致しません。 |
42X57 | 外部仮想表 '<表名>' の getColumnCount() が無効な値 '<値>' を戻しました。 有効値は 1 以上です。 |
42X58 | <表名>の左側の列と右側の列の数は同じにする必要があります。 |
42X59 | 各 VALUES コンストラクターの列の数は同じにする必要があります。 |
42X60 | 表 '<表名>' の insertMode プロパティーに無効値 '<値>' が指定されました。 |
42X61 | 型 '<型>' と '<型>' は <値> と互換性がありません。 |
42X62 | '<値>' は '<スキーマ名>' スキーマでは許可されません。 |
42X63 | USING 文節が結果を戻しませんでした。 パラメーターを設定できません。 |
42X64 | プロパティー・リストで、useStatistics プロパティーに無効な値 '<値>' が指定されました。 有効な値は TRUE または FALSE のみです。 |
42X65 | 索引 '<索引>' は存在しません。 |
42X66 | 列名 '<列名>' は、CREATE INDEX ステートメントで複数回使用されています。 |
42X68 | クラス '<クラス名>' に属するフィールド '<フィールド名>' が見つかりません。 このフィールドは存在するが public でないか、またはクラスが存在しないか、クラスが public でない可能性があります。 |
42X69 | Java プリミティブ型 '<型>' の参照式を使ってフィールド ('<フィールド名>') を参照することは許可されていません。 |
42X70 | The number of columns in the table column list does not match the number of columns in the underlying query expression in the table definition for '<値gt;'. |
42X71 | Invalid data type '<データ型名>' for column '<列名>'. |
42X72 | クラス ''{1}'' に属する静的フィールド '<フィールド名>' が見つかりません。 このフィールドは存在するが public および (または) 静的でないか、またはクラスが存在しないか、クラスが public でない可能性があります。 |
42X73 | シグニチャー <値>.<値>(<値>) のメソッド解決が未確定でした。 (最大限に特定の単一メソッドはありません。) |
42X74 | 無効な CALL ステートメント構文。 |
42X75 | シグニチャー <値>(<値>) を持つコンストラクターが見つかりません。 パラメーターの型がメソッド起動変換可能でない可能性があります。 |
42X76 | 追加されている主キーの少なくとも 1 つの列 '<列名>' が NULL 可能です。 主キー列はどれも NULL 可能にすることはできません。 |
42X77 | 列位置 '<列位置>' は照会式の範囲外です。 |
42X78 | 列 '<列名>' が照会式の結果にありません。 |
42X79 | 列名 '<列名>' は、照会式の結果に複数回使用されています。 |
42X80 | VALUES 文節には少なくとも 1 つのエレメントが含まれている必要があります。 空のエレメントは許可されません。 |
42X82 | USING 文節が複数の行を戻しました。 単一行の ResultSet のみが許可されます。 |
42X83 | 列 '<列名>' 上の制約は、NULL 可能であり、なおかつ NULL 可能でない必要があります。 |
42X84 | 制約 '<制約名>' を強制するために索引 '<索引>' が作成されました。 この索引をドロップする唯一の方法は、この制約をドロップすることです。 |
42X85 | 制約 '<制約名>' は、表 '<表名>' と同じスキーマにある必要があります。 |
42X86 | ALTER TABLE は失敗しました。 表 '<表名>' に制約 '<制約名>' がありません。 |
42X87 | '<式>' 式の少なくとも 1 つの結果式 (THEN または ELSE) は ''?'' 以外である必要があります。 |
42X88 | 条件が非ブール・オペランドを持っています。 条件のオペランドは、TRUE、FALSE、または UNKNOWN として評価する必要があります。 |
42X89 | 型 '<型>' と '<型>' は、互換性のある型ではありません。 どちらの型ももう一方の型に割り当てできません。 |
42X90 | 表 '<表名>' に対して複数の主キー制約が指定されています。 |
42X91 | 制約名 '<制約名>' は、CREATE TABLE ステートメントで複数回使用されています。 |
42X92 | 列名 '<列名>' は、制約の列リストで複数回使用されています。 |
42X93 | 表 '<表名>' には、この表にない列 '<列名>' を持つ制約定義が含まれています。 |
42X94 | <値> '<値>' は存在しません。 |
42X96 | データベース・クラスパスに不明な jar ファイル '<ファイル名>' が含まれています。 |
42X98 | ビュー定義では、パラメーターは許可されません。 |
42X99 | Parameters are not allowed in a TABLE definition. |
42Y00 | クラス '<クラス名>' は、org.apache.derby.iapi.db.AggregateDefinition をインプリメントしていないため、集合体式として使用できません。 |
42Y01 | 制約 '<制約名>' は無効です。 |
42Y03 | '<文>' は関数またはプロシージャーとして認識されません。 |
42Y04 | ピリオドで分離されたリストでないため、EXTERNAL NAME '<名前>' でプロシージャーまたは関数を作成できません。 予期されているフォーマットは <full java path>.<method name> です。 |
42Y05 | '<キー>' という名前の外部キーはありません。 |
42Y07 | スキーマ '<スキーマ名>' は存在しません |
42Y08 | 外部キー制約は、システム表では許可されていません。 |
42Y09 | void メソッドは、CALL ステートメント内でのみ許可されます。 |
42Y10 | INSERT ステートメントにない表コンストラクターが、列の 1 つにすべて ? のパラメーターを持っています。 各列ごとに、少なくとも 1 つの行がパラメーター以外の値を持っている必要があります。 |
42Y11 | '<文節名>' 文節には、結合仕様が必要です。 |
42Y12 | JOIN の ON 文節が '<式の種類>' 式です。 これはブール式にする必要があります。 |
42Y13 | 列名 '<列名>' は、CREATE VIEW ステートメントで複数回使用されています。 |
42Y16 | public の静的メソッド '<メソッド名>' がクラス '<クラス名>' に見つかりません。 このメソッドは存在する可能性がありますが、public でないか、静的でない可能性があります。 |
42Y22 | 集合体 <集約の種類> は、型 <型> に対して操作できません。 |
42Y23 | 列 <列名> に対して誤った JDBC 型情報が戻されました。 |
42Y24 | 表示 '<ビュー名>' は、更新不能です。 (ビューは現在更新不能です。) |
42Y25 | '<表名>' はシステム表です。 ユーザーがこの表の内容を変更することは許可されていません。 |
42Y26 | 集合体は GROUP BY リストでは許可されません。 |
42Y27 | パラメーターは、トリガー・アクションでは許可されません。 |
42Y29 | グループ化されていない照会の SELECT リストに、少なくとも 1 つの無効な式があります。 SELECT リストに少なくとも 1 つの集合体が含まれている場合は、すべてのエントリーが有効な集合体式である必要があります。 |
42Y30 | グループ化された照会の SELECT リストに、少なくとも 1 つの無効な式があります。 SELECT リストに GROUP BY がある場合、リストには有効なグループ化式と有効な集合体式しか含むことができません。 |
42Y32 | 型 {2} に対する集合体 ''{1}'' の Aggregator クラス ''{0}'' は、com.ibm.db2j.aggregates.Aggregator をインプリメントしていません。 |
42Y33 | 集合体 <集合体名> には、1 つ以上の集合体が含まれています。 |
42Y34 | 列名 '<列名>' は、表 '<表名>' 内の複数の結果列に一致します。 |
42Y35 | 列参照 '<参照>' は無効です。 SELECT リストに少なくとも 1 つの集合体が含まれている場合は、すべてのエントリーが有効な集合体式である必要があります。 |
42Y36 | 列参照 '<参照>' は無効です。 GROUP BY を持つ SELECT リストの場合、リストには有効なグループ化式と有効な集合体式しか含むことができません。 |
42Y37 | '<値>' は Java プリミティブであり、この演算子と一緒に使用することはできません。 |
42Y38 | insertMode = replace は、ターゲット表 '<表名>' が SELECT で参照されている場所での挿入では許可されません。 |
42Y39 | '<値>' は、非 deterministic 結果を戻す可能性があるので、CHECK CONSTRAINT 定義に現れない可能性があります。 |
42Y40 | '<値>' は、トリガー '<トリガ名>' の UPDATE OF 列リストに複数回現れます。 |
42Y41 | '<値>' はトリガーの一部なので、EXECUTE STATEMENT を使って直接呼び出すことはできません。 |
42Y42 | 目盛り '<目盛りの値>' は、<値> に有効な目盛りではありません。 |
42Y43 | 目盛り '<目盛りの値>' は、'<精度>' の精度に有効な目盛りではありません。 |
42Y44 | FROM リストのプロパティー・リストに無効なキー '<キー>' が指定されました。 現在サポートされているキー (大/小文字の区別あり) は '<キー>' です。 |
42Y45 | VTI '<値>' は特殊トリガー VTI であり、このステートメントはトリガー・アクションまたは WHEN 文節の一部でないため、バインドすることはできません。 |
42Y46 | FROM リストに無効なプロパティー・リスト。 表 '<表名>' に索引 '<索引>' がありません。 |
42Y48 | "FROM リストに無効なプロパティー・リスト。 名前付き制約 '<制約名>' が表 '<表名>' 上にないか、または制約がバッキング索引を持っていません。 |
42Y49 | プロパティー・キー '<キー>' に複数の値が指定されています。 |
42Y50 | 表 '<表名>' のプロパティー・リストには、索引の値または制約の値を入れることができますが、その両方を入れることはできません。 |
42Y55 | '<値>' は存在しないため、これに対して '<値>' を実行することはできません。 |
42Y56 | 表 '<表名>' のプロパティー・リストに無効な結合ストラテジー '<ストラテジーの値>' が指定されました。 結合ストラテジーに対して現在サポートされている値: ''hash'' および ''nestedloop''。 |
42Y58 | 値 '<値>' をオプティマイザー・オーバーライド '<値>' 用に変換しているときに NumberFormatException が発生しました。 |
42Y59 | hashInitialCapacity オーバーライドに対して無効な値 '<値>' が指定されました。 値は 0 より大きくする必要があります。 |
42Y60 | hashLoadFactor オーバーライドに対して無効な値 '<値>' が指定されました。 値は、0.0 より大きく、1.0 以下にする必要があります。 |
42Y61 | hashMaxCapacity オーバーライドに対して無効な値 '<値>' が指定されました。 値は 0 より大きくする必要があります。 |
42Y62 | ビューであるため、'<ビュー名>' 上での '<文>' は許可されません。 |
42Y63 | ハッシュ結合には、選択された索引またはヒープ内の列に最適化可能な等価結合述部が必要です。 表または索引 '<索引>' 内のどの列にも、最適化可能な等価結合述部が存在しません。 ''index'' オプティマイザー・オーバーライドを使って、表 '<表名>' にそのような索引またはヒープを指定してください。 |
42Y64 | '<値>' の bulkFetch 値が無効です。 bulkFetch の最小値は 1 です。 |
42Y65 | bulkFetch は、'<結合の種類>' 結合では許可されません。 |
42Y66 | bulkFetch は更新可能なカーソルでは許可されません。 |
42Y67 | スキーマ '<スキーマ名>' はドロップできません。 |
42Y69 | このステートメントに対する有効な実行プランが見つかりませんでした。 この原因として次の 2 つのうちの 1 つが考えられます。ハッシュ結合が許可されていないときにハッシュ結合ストラテジーを指定した (最適化可能な等価結合がない)。または、それぞれがお互いを参照しているためにステートメントを評価することのできない、2 つの外部仮想表を結合しようとしている。 |
42Y70 | ユーザーが正しくない結合順序を指定しました。 この原因として、内部表からの結合列が、パラメーターとして外部仮想表に渡されたことが考えられます。 |
42Y71 | システム関数およびプロシージャー '<手続名>' をドロップできません。 |
42Y82 | システム生成の保管された準備済みステートメント '<文>' は、DROP STATEMENT を使ってドロップできません。 これはトリガーの一部です。 |
42Y83 | 型のない NULL は、集合体 <集合体名> の引数として許可されません。 NULL を適切な型にキャストしてください。 |
42Y84 | '<値>' は DEFAULT 定義に指定できません。 |
42Y85 | DEFAULT キーワードは、VALUES 文節が INSERT ステートメント内にあるときにその VALUES 文節でのみ許可されます。 |
42Y90 | FOR UPDATE は、この型のステートメントでは許可されません。 |
42Y91 | USING 文節は、トリガー・アクションの EXECUTE STATEMENT では許可されません。 |
42Y92 | <トリガ名> トリガーは、<値> 遷移変数/表しか参照できません。 |
42Y93 | 不正な REFERENCING 文節: 遷移変数/表の各タイプごとに 1 つの名前しか許可されません。 |
42Y94 | AND または OR が非ブール・オペランドを持っています。 AND および OR のオペランドは、TRUE、FALSE、または UNKNOWN として評価する必要があります。 |
42Y95 | 左のオペランド型 '<オペランド型>' と右のオペランド型 '<オペランド型>' を持つ '<演算子名>' 演算子はサポートされていません。 |
42Y97 | 行 ''<行番号>'、列 '<列名>' に無効なエスケープ文字。 |
42Z02 | ここでは、複数の DISTINCT 集合体はサポートされていません。 |
42Z07 | 集合体は ON 文節では許可されません。 |
42Z08 | '<値>' は使用可能なトリガー (<値>) を持っているため、これに対するバルク挿入置換は許可されません。 |
42Z15 | 列 '<列名>' に対して無効な型が指定されました。 列の型は変更できません。 |
42Z16 | 型 VARCHAR の列のみ変更された長さを持つ可能性があります。 |
42Z17 | 列 '<列名>' に対して無効な長さが指定されました。 長さは、現行の列の長さよりも長くする必要があります。 |
42Z18 | 列 '<列名>' は、外部キー制約 '<制約名>' の一部です。 この列の長さを変更するには、まず制約をドロップし、ALTER TABLE を実行してから、制約を再作成してください。 |
42Z19 | 列 '<列名>' は少なくとも 1 つの外部キー制約 '<制約名>' により参照されています。 この列の長さを変更するには、まず参照制約をドロップし、ALTER TABLE を実行してから、制約を再作成してください。 |
42Z20 | 列 '<列名>' を NULL 可能にすることはできません。 これは主キーまたはユニーク制約の一部であり、NULL 可能列を持つことはできません。 |
42Z21 | 列 '<列名>' の ID に対して無効な増分が指定されました。 増分はゼロにできません。 |
42Z22 | ID 列 '<列名>' に対して無効な型が指定されました。 ID 列に有効な型は、BIGINT、INT および SMALLINT のみです。 |
42Z23 | ID 列 '<列名>' を変更しようとしました。 |
42Z24 | 表 '<表名>' の列 '<列名>' に対する ID 値 にオーバーフローが発生しました。 |
42Z25 | 内部エラー ID カウンター。 現行値 \= NULL のときに、引数なしで更新が呼び出されました。 |
42Z26 | ID デフォルトを持つ列 '<列名>' は NULL 可能 にできません。 |
42Z27 | NULL 可能列 '<列名>' を、ID デフォルトを持つように変更することはできません。 |
42Z50 | 内部エラー: <値> のコードを生成できません。 |
42Z53 | 内部エラー: ノード選択 <値> に対して生成する Activation のタイプが不明です。 |
42Z60 | <値> は、データベース・プロパティー <プロパティ名> の値が '<値>' でない場合は許可されません。 |
42Z70 | XML 値への直接の結合は許可されません。XMLPARSE の使用を試みてください。 |
42Z71 | 最上位結果セットでは XML 値は許可されません。XMLSERIALIZE の使用を試みてください。 |
42Z72 | SQL/XML キーワード '<キーワード>' が行 <行番号>、列 <列番号> にありません。 |
42Z73 | XMLSERIALIZE に無効なターゲット・タイプ: '<タイプの名前>'。 |
42Z74 | XML フィーチャーはサポートされていません: '<フィーチャー名>'。 |
42Z75 | XML 照会式は、ストリング・リテラルである必要があります。 |
42Z76 | 複数の XML コンテキスト項目は許可されません。 |
42Z77 | コンテキスト項目は ''XML'' 型である必要があります。'<値>' は許可されません。 |
42Z79 | XMLPARSE のパラメーター型を判別できません。CAST を使用してみてください。 |
42Z90 | クラス '<クラス名>' は、更新可能な ResultSet を戻しません。 |
42Z91 | 副照会 |
42Z92 | 反復可能読み取り |
42Z93 | 制約 '<制約名>' と '<制約名>' は同じ列セットを持っていますが、これは許可されません。 |
42Z97 | 列 '<列名>' を名前変更するとチェック制約 '<制約名>' に違反します。 |
42Z99 | ストリングまたは 16 進数リテラルは、64K を超えることはできません。 |
42Z9A | コミットされていない読み取り |
42Z9B | 外部仮想表インターフェースは、BLOB または CLOB 列をサポートしません。 '<値>' の列 '<値>'。 |
42Z9D | BEFORE トリガーでは、SQL データを変更するプロシージャーを使用できません。 |
42Z9D | '<文>' ステートメントは '<トリガ名>' トリガーでは許可されません。 |
42Z9E | 制約 '<制約名>' は、<値> 制約ではありません。 |
42Z9F | 表 <表名> に指定された索引 (<索引>) が多すぎます。 制限は <数> です。 |
42ZA0 | ステートメントが複雑すぎます。 複雑さを軽減するよう照会を書き直してください。 重複する多数の式を除去するか、照会を分割して一時的な結果を一時表に格納することにより、多くの場合このエラーを解決できます。 |
42ZA1 | バッチ内に無効な SQL が存在します: '<バッチ>'。 |
42ZA2 | Operand of LIKE predicate with type <型> and collation <値> is not compatable with LIKE pattern operand with type <型> and collation <値>. |
42ZA3 | The table will have collation type <型> which is different than the collation of the schema <型> hence this operation is not supported . |
SQLSTATE | 文言 |
57017 | ソース・コード・ページ <コードページ> からターゲット・コード・ページ <コードページ> への変換は使用できません。 接続は終了されました。 |
SQLSTATE | 文言 |
58009 | ネットワーク・プロトコル例外: VCM、VCS の長さのうち 0 より大きくできるのは 1 つのみです。 接続は終了されました。 |
58009 | サポートされていないエンコード方式であるため接続が終了されました。 |
58009 | ネットワーク・プロトコル例外: 実際のコード・ポイント <値> が予期されていたコード・ポイント <値> と一致しません。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: DDM コレクションに含まれているデータが 4 バイト未満です。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: 同一の ID チェーンの解析終了時に、コレクション・スタックが空ではありませんでした。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: 同一の ID チェーンの解析終了時に、DSS の長さが 0 ではありませんでした。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: DSS チェーンの次のセグメントが、現行のセグメントと同じ ID 番号 です。接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: InputStream (パラメーター #<値>) の読み取り中に予期せずストリームの終端に達しました。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: 無効な FDOCA LID です。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: SECTKN が戻されませんでした。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: NVCM、NVCS のうち非ヌルにできるのは 1 つのみです。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: SCLDTA の長さ <長さ> は RDBNAM に対して無効です。 接続は終了されました。 |
58009 | SocketException: '<エラー>' |
58009 | 通信エラーが検出されました: <エラー>。 |
58009 | 据え置き接続のリセット中にエラーが発生し、接続が終了されました。 詳細については、付随する例外を参照してください。 |
58009 | ネットワークから読み取り中のデータが不十分です。<数> バイト以上のデータを予期していましたが受信したデータは <数> バイトのみでした。 接続は終了されました。 |
58009 | JVM に対して大きすぎる LOB データを完全にマテリアライズしようとしました。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: SCLDTA の長さ <長さ> は RDBNAM に対して無効です。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: SCLDTA の長さ <長さ> は PKGID に対して無効です。 接続は終了されました。 |
58009 | ネットワーク・プロトコル例外: PKGNAMCSN の長さ <長さ> は SQLAM <長さ> では無効です。 接続は終了されました。 |
58009 | ネットワーク・プロトコル・エラーが発生し、接続が終了されました: <エラー> |
58010 | ネットワーク・プロトコル・エラーが発生しました。 レベル <値> のマネージャー <値> はサーバーによりサポートされないため、接続を確立できませんでした。 |
58014 | DDM コマンド 0x<値> はサポートされていません。 接続は終了されました。 |
58015 | DDM オブジェクト 0x<値> はサポートされていません。 接続は終了されました。 |
58016 | DDM パラメーター 0x<値> はサポートされていません。 接続は終了されました。 |
58017 | DDM パラメーター値 0x<値> はサポートされていません。 入力されたホスト変数は、サーバーがサポートする範囲内でない可能性があります。 接続は終了されました。 |
SQLSTATE | 文言 |
X0A00 | 選択リストに、列 '<列名>' が 2 回記述されています。 GROUP BY 文節または HAVING 文節を持つ照会では、これは許可されません。 競合する列の 1 つに固有の名前を別名として割り当ててください。 |
X0X02 | 表 '<表名>' は '<モード> モードにロックできません。 |
X0X03 | 無効なトランザクション状態です。保留カーソルには同じ分離レベルが必要です。 |
X0X05 | 表またはビュー '<表名>' は存在しません。 |
X0X07 | JAR ファイル '<ファイル名>' は derby.database.classpath '<ファイル名>' にあるため除去できません。 |
X0X0E | 自動生成列の選択配列にリストされた列位置 '<列位置>' が挿入表に見つかりませんでした。 |
X0X0F | Column name '<columnName>' listed in auto-generated column selection array not found in the insert table. |
X0X10 | USING 文節が複数の行を戻しました。単一行の ResultSets のみが許可されます。 |
X0X11 | USING 文節が結果を戻さなかったため、パラメーターを設定できません。 |
X0X13 | スキーマ '<スキーマ名>' に JAR ファイル '<ファイル名>' が存在しません。 |
X0X57 | 型 '<型>' の Java 値を SQL 値に入れようとしましたが、対応する SQL 型がありません。 この Java 値は、おそらくメソッド呼び出しまたはフィールド・アクセスの結果です。 |
X0X60 | '<カーソル名>' という名前のカーソルはすでに存在します。 |
X0X61 | 索引 '<列名>' と表 '<索引名>.<スキーマ名>' の列 '<位置>' に対する値が行ロケーション '<表名>' で一致しません。 索引の値は '<値>' ですが、基本表の値は '<値>' です。 行ロケーションを含む、完全索引キーは '<索引キー>' です。 訂正処置として、索引の再作成をお勧めします。 |
X0X62 | 表 '<表名>' と索引 '<索引名>' の間に不整合が見つかりました。 表から行ロケーション '<行位置>' を検索しようとしたときにエラーが発生しました。 行ロケーションを含む、完全索引キーは '<索引キー>' です。 訂正処置として、索引の再作成をお勧めします。 |
X0X63 | IOException '<値>' を受け取りました。 |
X0X67 | 型 '<型>' の列は、その型に対する比較がサポートされていないため、CREATE INDEX、ORDER BY、GROUP BY、UNION、INTERSECT、EXCEPT または DISTINCT ステートメントでは使用できません。 |
X0X81 | <値> '<値>' は存在しません。 |
X0X85 | '<索引型>' は有効な索引型ではないため、索引 '<索引名>' が作成されませんでした。 |
X0X86 | 0 は、ResultSet.absolute(int row) に対して無効なパラメーターです。 |
X0X87 | カーソルが行に位置付けられていない場合、ResultSet.relative(int row) を呼び出すことはできません。 |
X0X95 | オブジェクト '<オブジェクト名>' においてオペレーション '<オペレーション名>' を実行することはできません。そのオブジェクトに従属するオープンされている ResultSet があります。 |
X0X99 | 索引 '<索引名>' は存在しません。 |
X0Y16 | '<値>' はビューではありません。 表の場合は、代わりに DROP TABLE を使用してください。 |
X0Y23 | オブジェクト '<オブジェクト名>' においてオペレーション '<オペレーション名>' を実行できません。VIEW '<ビュー名>' がそのオブジェクトに従属しています。 |
X0Y24 | オブジェクト '<オブジェクト名>' においてオペレーション '<オペレーション名>' を実行できません。STATEMENT '<文>' がそのオブジェクトに従属しています。 |
X0Y25 | オブジェクト '<オブジェクト名>' においてオペレーション '<操作名>' を実行できません。<値> '<値>' がそのオブジェクトに従属しています。 |
X0Y26 | 索引 '<索引名>' は、表 '<表名>' と同じスキーマにある必要があります。 |
X0Y28 | 索引 '<索引名>' を、システム表 '<表名>' 上に作成することはできません。 ユーザーがシステム表上に索引を作成することはできません。 |
X0Y32 | <値> '<値>' は、既に <値> '<値>' に存在します。 |
X0Y38 | 表 '<表名>' が存在しないため、索引 '<索引名>' を作成できません。 |
X0Y41 | 参照表 <表名> に主キーがないため、制約 '<制約名>' は無効です。 主キーを <表名> に追加するか、この外部キーが参照するユニーク制約の列を明示的に指定してください。 |
X0Y42 | 制約 '<制約名>' は無効です: 外部キー列の型が参照列の型と一致しません。 |
X0Y43 | 制約 '<制約名>' は無効です: <制約名> (<値>) の列数が参照キー (<値>) の列数と一致しません。 |
X0Y44 | 制約 '<制約名>' は無効です: 表 '<表名>' に、外部キーの列の数および型と一致するユニーク制約または主キー制約がありません。 |
X0Y45 | 1 つ以上の外部キーが一致する参照キーを持っていないため、外部キー制約 '<制約名>' を表 <表名> に追加、またはそこで使用可能にすることはできません。 |
X0Y46 | 制約 '<制約名>' は無効です: 参照表 <表名> が存在しません。 |
X0Y54 | スキーマ '<スキーマ名>' は空でないため、ドロップできません。 |
X0Y55 | 基本表の行数が、表上の少なくとも 1 つの索引の行数と一致しません。 表 '<スキーマ名>.<表名>' 上の索引 '<索引>' は <数> 行ですが、基本表は <数> 行です。 訂正処置として、索引の再作成をお勧めします。 |
X0Y56 | '<値>' は、システム表 '<表名>' では許可されません。 |
X0Y57 | NULL 可能でない列を表 '<表名>' に追加することはできません。この表には少なくとも 1 つの行が含まれます。 NULL 可能でない列は、空の表にしか追加できません。 |
X0Y58 | 主キー制約を表 '<表名>' に追加しようとして失敗しました。この表はすでにこの型の制約を持っています。 表は、1 つの主キー制約しか持つことができません。 |
X0Y59 | 表 '<行名>' に制約を追加、またはそこで使用可能にしようとして失敗しました。表に含まれる <制約名> 行が次のチェック制約に違反しています: <表名>。 |
X0Y63 | 表 '<表名>' におけるコマンドは失敗しました。主キーまたはユニーク制約/索引列で NULL データが検出されました。 主キーおよびユニーク索引キー内の列は、いずれも NULL にすることはできません。 |
X0Y66 | 親接続に保留中のオペレーションがあるときは、ネストされた接続でコミットは発行できません。 |
X0Y67 | 親接続に保留中のオペレーションがあるときは、ネストされた接続でロールバックは発行できません。 |
X0Y68 | <値> '<値>' はすでに存在します。 |
X0Y69 | <トリガー名> はトリガー <値> ではサポートされていません。 |
X0Y70 | トリガー <表名> がアクティブのため、表 <トリガー名> での INSERT、UPDATE および DELETE は許可されません。 |
X0Y71 | SET ISOLATION のようなトランザクション操作は、トリガー <トリガ名> がアクティブのため、許可されません。 |
X0Y72 | '<値>' は使用可能なトリガー (<値>) を持っているため、これに対するバルク挿入置換は許可されません。 |
X0Y77 | グローバル・トランザクションが暗黙的にコミットされるため、実行中のグローバル・トランザクションに対して set transaction isolation ステートメントを発行できません。 |
X0Y78 | Statement.executeQuery() は、行カウントを戻すステートメントを使って呼び出せません。 |
X0Y78 | 複数の結果セットが戻されたため、<値>.executeQuery() を呼び出せません。 複数の結果を取得するには <値>.execute() を使用してください。 |
X0Y78 | <値>.executeQuery() が呼び出されましたが、結果セットが戻されませんでした。 照会が存在しない場合は、<値>.executeUpdate() を使用してください。 |
X0Y79 | Statement.executeUpdate() は、ResultSet を戻すステートメントを使って呼び出せません。 |
X0Y80 | ALTER 表 '<表名>' が失敗しました。 列 '<列名>' で NULL データが検出されました。 |
X0Y83 | 警告: 表から行を削除している間、データベースおよび関連プロジェクト ID <id> の索引で、基本表行 <行名> の索引行が見つかりませんでした。 この問題は、削除オペレーションの一部として自動的に訂正されました。 |
SQLSTATE | 文言 |
XBCA0 | キー <キー> を使って <キャッシュ> キャッシュ内に新規オブジェクトを作成できませんでした。 オブジェクトはすでにこのキャッシュに存在します。 |
SQLSTATE | 文言 |
XBCM1 | 生成されたクラス <クラス名> のロード中に Java リンケージ・エラーがスローされました。 |
XBCM2 | 生成されたクラス <クラス名> のインスタンスを作成できません。 |
XBCM3 | メソッド <メソッド名>() は、生成されたクラス <クラス名> に存在しません。 |
XBCM4 | Java クラス・ファイル・フォーマットの制限を超えました: 生成されたクラス <クラス名> の <値>。 |
SQLSTATE | 文言 |
XBCX0 | 暗号方式プロバイダーからの例外。 詳細については、次の例外を参照してください。 |
XBCX1 | 不正なモードで暗号を初期化しています。ENCRYPT か DECRYPT のいずれかを使用してください。 |
XBCX2 | 暗号の初期化に使っているブート・パスワードが短すぎます。 パスワードの長さは少なくとも <数> 文字にする必要があります。 |
XBCX5 | ブート・パスワードを NULL に変更することはできません。 |
XBCX6 | ブート・パスワードを、非ストリングのシリアライズ可能なタイプに変更することはできません。 |
XBCX7 | ブート・パスワードの変更フォーマットが誤りです。 正しいフォーマットは次の通りです: old_boot_password, new_boot_password。 |
XBCX8 | 暗号化されていないデータベースのブート・パスワードは変更できません。 |
XBCX9 | 読み取り専用データベースのブート・パスワードは変更できません。 |
XBCXA | ブート・パスワードが誤りです。 |
XBCXB | 誤った暗号化埋め込み '<値>' が指定されたか、埋め込みが指定されていません。 ''NoPadding'' を使用してください。 |
XBCXC | 暗号化アルゴリズム '<アルゴリズム名>' は存在しません。 選択したプロバイダー '<プロバイダ名>' がこのアルゴリズムをサポートしているかチェックしてください。 |
XBCXD | データベース作成後に暗号化アルゴリズムを変更することはできません。 |
XBCXE | データベース作成後に暗号化プロバイダーを変更することはできません。 |
XBCXF | 暗号化プロバイダーを示すクラス '<クラス名>' が見つかりません。 |
XBCXG | 暗号化プロバイダー '<プロバイダー名>' は存在しません。 |
XBCXH | encryptionAlgorithm '<アルゴリズム名>' のフォーマットが誤りです。 正しいフォーマットは、algorithm/feedbackMode/NoPadding です。 |
XBCXI | フィードバック・モード '<モード>' はサポートされていません。 サポートされているフィードバック・モードは CBC、CFB、OFB、および ECB です。 |
XBCXJ | アプリケーションは、1.2.1 より前の Java Cryptography Extension (JCE) のバージョンを使用しています。 JCE 1.2.1 にアップグレードした上で、オペレーションを再試行してください。 |
XBCXK | 与えられた暗号鍵は、データベースの作成時に使用された暗号鍵と一致しません。 正しい暗号鍵を使用していることを確認して、再試行してください。 |
XBCXL | 暗号鍵の検査プロセスは失敗しました。 原因としては、検査プロセスを行うための特定のファイルへのアクセス中のエラーが考えられます。 詳細については、次の例外を参照してください。 |
XBCXM | 外部暗号鍵の長さは、偶数である必要があります。 |
XBCXN | 外部暗号鍵に正しくない文字が 1 つ以上含まれています。 16 進数として使用可能な文字は 0 から 9、a から f、および A から F です。 |
XBCXO | 準備済み状態のグローバル・トランザクションが存在する場合は、データベースを暗号化できません。 |
XBCXP | 準備済み状態のグローバル・トランザクションが存在する場合は、新規ブート・パスワードまたは外部暗号鍵でデータベースを再暗号化できません。 |
XBCXQ | 読み取り専用データベースを暗号化用に構成することはできません。 |
XBCXR | 新規ブート・パスワードまたは外部暗号鍵で読み取り専用データベースを再暗号化することはできません。 |
XBCXS | データベースがログ・アーカイブ・モードである場合は、データベースを暗号化用に構成できません。 |
XBCXT | データベースがログ・アーカイブ・モードである場合は、新規ブート・パスワードまたは外部暗号鍵でデータベースを再暗号化できません。 |
XBCXU | 暗号化されていないデータベースの暗号化に失敗しました: <失敗の文言> |
XBCXV | 暗号化されたデータベースの、新規鍵または新規パスワードでの暗号化に失敗しました: <失敗の文言> |
SQLSTATE | 文言 |
XBM01 | 例外のため、始動に失敗しました。 詳細については、次の例外を参照してください。 |
XBM02 | <値> の機能がないため、始動に失敗しました。 クラスパスに正しい Derby ソフトウェアが含まれていることを確認してください。 |
XBM05 | <value> の製品バージョン情報がないため、始動に失敗しました。 |
XBM06 | 始動に失敗しました。 暗号化されたデータベースは、正しいブート・パスワードがないとアクセスできません。 |
XBM07 | 始動に失敗しました。 ブート・パスワードの長さは 8 バイト以上にする必要があります。 |
XBM08 | <値> StorageFactory クラス <値> をインスタンス化できませんでした。 |
XBM0G | 暗号化エンジンの始動に失敗しました。 Java 2 を実行しており、JCE などの暗号化プロバイダーをダウンロードしてクラスパスに指定していることを確認してください。 |
XBM0H | ディレクトリー <ディレクトリー名> を作成できません。 |
XBM0I | ディレクトリー <ディレクトリー名> を除去できません。 |
XBM0J | ディレクトリー <ディレクトリー名> はすでに存在します。 |
XBM0K | データベース名 <データベース名> のサブプロトコルが不明です。 |
XBM0L | 指定された認証スキーム・クラス <クラス名> は、認証インターフェース <インターフェイス名> をインプリメントしていません。 |
XBM0M | 認証スキーム・クラス <クラス名> のインスタンスの作成でエラーが発生しました。 |
XBM0N | java.sql.DriverManager への JDBC ドライバーの登録に失敗しました。 詳細については、次の例外を参照してください。 |
XBM0P | サービス・プロバイダーは読み取り専用です。 オペレーションが許可されていません。 |
XBM0Q | ファイル <ファイル名> が見つかりません。 バックアップ・コピーが正しいものであり、それが破壊されていないことを確認してください。 |
XBM0R | ファイル <ファイル名> を除去できません。 |
XBM0S | ファイル '<ファイル名>' を '<ファイル名>' に名前変更できません。 |
XBM0T | データベース名 <データベース名> のサブプロトコルが未確定です。 |
XBM0U | ID <識別子名> に対してクラスが登録されていません。 |
XBM0V | ID <識別子名> に対して登録されたクラス <クラス名> のロード中に例外がスローされました |
XBM0W | ID <識別子名> に対して登録されたクラス <クラス名> のインスタンスの作成中に例外がスローされました |
XBM0X | 提供されたテリトリー記述 '<値>' は無効です。予期されているテリトリー記述: ln[_CO[_variant]]\nln=小文字 2 文字から成る ISO-639 言語コード、CO= 大文字 2 文字から成る ISO-3166 国別コード。java.util.Locale を参照。 |
XBM03 | Supplied value '<値>' for collation attribute is invalid, expecting UCS_BASIC or TERRITORY_BASED. |
XBM0Y | バックアップ・データベース・ディレクトリー <ディレクトリー名> が見つかりません。 指定したバックアップ・パスが正しいことを確認してください。 |
XBM0Z | ファイル '<ファイル名>' を '<ファイル名>' にコピーできません。 十分なスペースがあり、許可が正しいことを確認してください。 |
SQLSTATE | 文言 |
XCL01 | 結果セットが行を戻しません。 オペレーション <操作名> は許可されません。 |
XCL05 | Activation がクローズされました。オペレーション <操作名> は許可されません。 |
XCL07 | カーソル '<カーソル名>' はクローズされています。 自動コミットがオフになっていることを確認してください。 |
XCL08 | カーソル '<カーソル名>' が行にありません。 |
XCL09 | PreparedStatement に一致しない '<メソッド名>' メソッドに Activation が渡されました。 |
XCL10 | PreparedStatement が再コンパイルされ、パラメーターが変更されました。 JDBC を使用している場合は、ステートメントを再準備する必要があります。 |
XCL12 | 型 '<データ型名>' のデータ値を型 '<データ型名>' のデータ値に書き込もうとしました。 |
XCL13 | パラメーター位置 '<パラメータ位置>' は範囲外です。 この準備済みステートメントのパラメーターの数は '<数>' です。 |
XCL14 | 列位置 '<列位置>' は範囲外です。 この ResultSet に対する列数は '<数>' です。 |
XCL15 | オブジェクト '<オブジェクト>' において compareTo() メソッドを呼び出しているときに ClassCastException が発生しました。 compareTo() のパラメーターはクラス '<クラス名>' です。 |
XCL16 | ResultSet がオープンされていません。 オペレーション '<操作>' は許可されません。 自動コミットがオフになっていることを確認してください。 |
XCL16 | ResultSet がオープンされていません。 自動コミットがオフになっていることを確認してください。 |
XCL17 | ステートメントはこのデータベースでは許可されません。 |
XCL18 | 結果内の列値のストリームを 2 回取得することはできません。 |
XCL19 | 表 '<表名>' にキー '<キー>' に対する行がありません。 |
XCL20 | バージョン・レベル '<バージョン番号>' のカタログを、バージョン・レベル '<バージョン番号>' にアップグレードすることはできません。 |
XCL21 | 別のステートメントを準備しながら、データ定義ステートメント (CREATE、DROP、または ALTER) を実行しようとしています。 これは許可されません。 これは、SQL ステートメント内から使用されている Java クラスの静的イニシャライザー内からデータ定義ステートメントを実行した場合に起こることがあります。 |
XCL22 | パラメーター <パラメーター名> は IN パラメーターであるため、OUT パラメーターとして登録できません。 |
XCL23 | SQL 型番号 '<型>' は、registerOutParameter() によってサポートされた型ではありません。 |
XCL24 | パラメーター <パラメータ名> は出力パラメーターのようですが、registerOutParameter() によってそのように指定されていません。 これが出力パラメーターでない場合は、型 <型> に設定する必要があります。 |
XCL25 | パラメーター <パラメータ名> は型 <型> として登録できません。このパラメーターは型 <型> をマップしており、この 2 つは非互換です。 |
XCL26 | パラメーター <パラメータ名> は出力パラメーターではありません。 |
XCL27 | 戻り出力パラメーターを設定できません。 |
XCL30 | InputStream から '<値>' を読み取っているときに、IOException がスローされました。 |
XCL31 | ステートメントはクローズされました。 |
XCL33 | 削除規則の制約事項のため、表 <表名> に従属する表としてその表を定義することはできません。 (その関係は、自己参照になっており、自己参照関係は SET NULL の削除規則にすでに存在しています。) |
XCL34 | 削除規則の制約事項のため、表 <表名> に従属する表としてその表を定義することはできません。 (その関係により、複数表の循環が構成され、結果としてその表は循環と連結削除されるものになります (循環の他のすべての削除規則は、CASCADE になります。)) |
XCL35 | 削除規則の制約事項のため、表 <表名> に従属する表としてその表を定義することはできません。 (その関係により、その表は複数の関係を介して指定の表と連結削除される表になり、既存の関係の削除規則は SET NULL です。) |
XCL36 | 外部キーの削除規則は <値> である必要があります。 (参照制約は、自己参照になっており、既存の自己参照制約に指定の削除規則があります (NO ACTION、RESTRICT または CASCADE)。) |
XCL37 | 外部キーの削除規則は <値> である必要があります。 (参照制約は、自己参照になっており、その表は CASCADE の削除規則との関係に依存しています。) |
XCL38 | 外部キーの削除規則は <規則名> である必要があります。 (その関係により、その表は、複数の関係を介して同じ表と連結削除される表になり、そのような関係は同じ削除規則を持つ必要があります (NO ACTION、RESTRICT または CASCADE)。) |
XCL39 | 外部キーの削除規則は CASCADE にはできません。 (自己参照制約が、SET NULL、NO ACTION または RESTRICT の削除規則に存在します。) |
XCL40 | 外部キーの削除規則は CASCADE にはできません。 (その関係により、循環が構成され、その結果としてその表は循環と連結削除されるものになります。 その循環にある既存の削除規則の 1 つは CASCADE ではないので、削除規則が CASCADE でない場合はこの関係が定義可能になる場合があります。) |
XCL41 | 外部キーの削除規則は CASCADE にはできません。 (その関係により、別の表が、異なる削除規則を持つ複数のパスあるいは、SET NULL と等しい削除規則を持つ複数のパスを介して同じ表と連結削除されるものになります。) |
XCL42 | CASCADE |
XCL43 | SET NULL |
XCL44 | RESTRICT |
XCL45 | NO ACTION |
XCL46 | SET DEFAULT |
XCL47 | '<値>' を使用するには、データベースをバージョン <バージョン番号> からバージョン <バージョン番号> 以降にアップグレードする必要があります。 |
XCL48 | TRUNCATE TABLE は '<値>' では許可されません。この表のユニーク/主キー制約が他の表からの使用可能な外部キー制約によって参照されています。 |
XCL49 | '<値>' は使用可能な DELETE トリガー (<値>) を持っているため、これに対する TRUNCATE TABLE は許可されません。 |
XCL50 | 前のバージョンからのデータベースのアップグレードはサポートされません。 アクセスしているデータベースのバージョン・レベルは '<バージョン番号>' で、このソフトウェアのバージョン・レベルは '<バージョン番号>' です。 |
XCL51 | 要求された機能は、SESSION スキーマの表を参照できません。 |
XCL52 | ステートメントは取り消されたか、タイムアウトになりました。 |
XCL53 | Stream is closed |
SQLSTATE | 文言 |
XCW00 | '<値>' から '<値>' へのアップグレードはサポートされていません。 |
SQLSTATE | 文言 |
XCXA0 | 無効な ID。 |
XCXB0 | 無効データベース・クラスパス: '<クラスパス>'。 |
XCXC0 | 無効な ID リスト。 |
XCXE0 | データベースのテリトリーを使用するオペレーションを実行しようとしていますが、そのデータベースはテリトリーを持っていません。 |
SQLSTATE | 文言 |
XCY00 | 無効なプロパティー値 '<値>'='<値>'。 |
XCY02 | 要求されたプロパティーの変更はサポートされていません。'<値>'='<値>'。 |
XCY03 | 必要なプロパティー '<プロパティ名>' が設定されていません。 |
XCY04 | オプティマイザー・オーバーライドの構文が無効です。 次のような構文である必要があります。 -- DERBY-PROPERTIES propertyName = value [, propertyName = value]* |
SQLSTATE | 文言 |
XCZ00 | 不明な許可 '<許可名>'。 |
XCZ01 | 不明なユーザー '権限ID'。 |
XCZ02 | 無効なパラメーター '<値>'='<値>'。 |
SQLSTATE | 文言 |
XD003 | ディスクから従属関係をリストアできません。 DependableFinder = '<値>'。 詳細情報: ''<値>''。 |
XD004 | 従属関係を保管できません。 |
SQLSTATE | 文言 |
XIE01 | 接続が NULL でした。 |
XIE03 | 行 <行番号> の列 <列名> に対するデータが停止区切り文字の後に検出されました。 |
XIE04 | データ・ファイルが見つかりません: <ファイル名> |
XIE05 | データ・ファイルを NULL にすることはできません。 |
XIE06 | エンティティー名が NULL でした。 |
XIE07 | フィールド分離文字とレコード分離文字をお互いのサブストリングにすることはできません。 |
XIE08 | この名前の列はありません: <列名>。 |
XIE09 | この行の合計列数: <数>。 |
XIE0B | 表の列 '<列名>' の型は <型> です。インポート/エクスポートのフィーチャーではサポートされていません。 |
XIE0D | 行 <行番号> のレコード分離文字を検出できません。 |
XIE0E | 行 <行番号> の予期しない場所で endOfFile を読み取りました |
XIE0I | ファイルへのデータ書き込み中に IOException が発生しました。 |
XIE0J | 区切り文字が無効か、1 回以上使用されています。 |
XIE0K | ピリオドが文字ストリング区切り文字として指定されました。 |
XIE0M | 表 '<表名>' は存在しません。 |
XIE0N | An invalid hexadecimal string '<16進文字列>' detected in the import file. |
XIE0P | Lob data file <ファイル名> referenced in the import file not found. |
XIE0Q | Lob data file name cannot be null. |
XIE0R | Import error on line <行番号> of file <ファイル名>: <詳細> |
SQLSTATE | 文言 |
XJ004 | データベース '<データベース名>' が見つかりません。 |
XJ008 | 自動コミット・モードでは、セーブポイントのロールバックまたはリリースを行うことができません。 |
XJ009 | CallableStatement を使用するには、ストアード・プロシージャー呼び出しか、出力パラメーターの使用が必要です。<value> |
XJ010 | autoCommit がオンになっているときには、savepoint を実行できません。 |
XJ011 | セーブポイント名に NULL を渡すことはできません。 |
XJ012 | '<値>' はすでにクローズされています。 |
XJ013 | 名前付きのセーブポイントに ID がありません。 |
XJ014 | 不特定のセーブポイントに名前がありません。 |
XJ015 | Derby システムがシャットダウンされました。 |
XJ016 | メソッド '<メソッド名>' は、準備済みステートメントでは許可されません。 |
XJ017 | savepoint コマンドは、トリガー・コード内では許可されません。 |
XJ018 | 列名を NULL にすることはできません。 |
XJ020 | オブジェクト型が TYPE '<型名>' に変換可能でないか、java.sql.Types 値が無効であるか、あるいはオブジェクトが NULL でした。 |
XJ021 | 型がサポートされていません。 |
XJ022 | ストリームを設定できません: '<名前>'。 |
XJ023 | 入力ストリームのデータ量は、要求された長さと完全には一致しませんでした。 |
XJ025 | 入力ストリームは負の長さを持つことはできません。 |
XJ028 | URL '<url値>' の形式が正しくありません。 |
XJ030 | ネストされた接続では、自動コミットをオンに設定できません。 |
XJ040 | データベース '<データベース名>' を始動できません。詳しくは、次の例外を参照してください。 |
XJ041 | データベース '<データベース名gt;' の作成に失敗しました。詳しくは、次の例外を参照してください。 |
XJ042 | '<値>' は、プロパティー '<プロパティー名>' に有効な値ではありません。 |
XJ044 | '<値>' は無効な目盛りです。 |
XJ045 | 無効または (現在) サポートされていない分離レベル '<レベル名>' が Connection.setTransactionIsolationLevel() に渡されました。 現在サポートされている値は、java.sql.Connection.TRANSACTION_SERIALIZABLE、java.sql.Connection.TRANSACTION_REPEATABLE_READ、java.sql.Connection.TRANSACTION_READ_COMMITTED、および java.sql.Connection.TRANSACTION_READ_UNCOMMITTED です。 |
XJ049 | 指定された属性の作成で競合があります。 |
XJ04B | バッチには、結果セットを戻そうとするコマンドを入れることはできません。 |
XJ04C | CallableStatement バッチには、出力パラメーターを入れることはできません。 |
XJ056 | 接続の場合、AUTOCOMMIT ON を設定できません。 |
XJ057 | Cannot commit a global transaction using the Connection, commit processing must go thru XAResource interface. |
XJ058 | Cannot rollback a global transaction using the Connection, commit processing must go thru XAResource interface. |
XJ059 | グローバル・トランザクションがまだアクティブなときに接続をクローズすることはできません。 |
XJ05B | JDBC 属性 '<属性名>' の値 '<値>' は無効です。有効な値は '<値>' です。 |
XJ05C | グローバル・トランザクションの保持機能 ResultSet.HOLD_CURSORS_OVER_COMMIT を設定できません。 |
XJ061 | '<メソッド名>' メソッドは、スクロール・カーソルでのみ許可されます。 |
XJ062 | ResultSet.setFetchSize(int rows) に対する無効なパラメーター値 '<値>'。 |
XJ063 | Statement.setMaxRows(int maxRows) に対する無効なパラメーター値 '<値>'。 パラメーターは >= 0 にする必要があります。 |
XJ064 | setFetchDirection(int direction) に対する無効なパラメーター値 '<値>'。 |
XJ065 | Statement.setFetchSize(int rows) に対する無効なパラメーター値 '<値>'。 |
XJ066 | Statement.setMaxFieldSize(int max) に対する無効なパラメーター値 '<値>'。 |
XJ067 | SQL テキスト・ポインターが NULL です。 |
XJ068 | バッチ処理中には、executeBatch と clearBatch しか許可されません。 |
XJ069 | SetXXX メソッドは、USING 実行ステートメントの場合には許可されません。 |
XJ070 | 負またはゼロの位置引数 '<引数>' が BLOB または CLOB メソッドに渡されました。 |
XJ071 | 負の長さ引数 '<引数>' が BLOB または CLOB メソッドに渡されました。 |
XJ072 | NULL パターンまたは searchStr が BLOB または CLOB 位置メソッドに渡されました。 |
XJ073 | この BLOB または CLOB のデータはもう使用できません。 BLOB/CLOB トランザクションがコミットされているか、接続がクローズされている可能性があります。 |
XJ074 | Statement.setQueryTimeout(int seconds) に対する無効なパラメーター値 '<値>'。 |
XJ076 | 位置引数 '<位置引数>' が BLOB/CLOB のサイズを超えています。 |
XJ077 | getBytes/getSubString を使用して BLOB/CLOB パターンの最初のバイト/文字を読み取ろうとして、例外が発生しました。 |
XJ078 | オフセット '<値>' がゼロより小さいか、現行の BLOB/CLOB に対して大きすぎます。 |
XJ079 | 指定された長さ '<数>' が BLOB/CLOB のサイズを超えています。 |
XJ080 | USING 実行ステートメントが <数> ではなく <数> パラメーターを渡しました。 |
XJ081 | 指定された create/restore/recovery 属性に矛盾があります。 |
XJ081 | パラメーター '<パラメーター名>' として無効な値 '<値>' がメソッド '<メソッド名>' に渡されました。 |
XJ085 | ストリームは既に読み取られ、ファイルの終わりに達しており、再使用できません。 |
XJ086 | このメソッドは、カーソルが挿入行に存在しないか、この ResultSet オブジェクトの並行性が CONCUR_READ_ONLY である場合は呼び出せません。 |
XJ087 | Sum of position('<位置>') and length('<長さ>') is greater than the size of the LOB. |
XJ088 | 無効なオペレーション: データを取得せずに wasNull() が呼び出されました。 |
XJ090 | 無効なパラメーター: カレンダーが NULL です。 |
XJ091 | 無効な引数: パラメーター索引 <引数番号> は OUT パラメーターでも INOUT パラメーターでもありません。 |
XJ093 | BLOB/CLOB の長さ <数> が長すぎます。 長さが <数> を超えてはなりません。 |
XJ094 | このオブジェクトは既にクローズされています。 |
XJ095 | 特権アクションを実行しようとして失敗しました。 |
XJ096 | リソース・バンドルを <値> の <パッケージ名> パッケージから検出できませんでした。 |
XJ097 | この接続で作成されていないセーブポイントのロールバックまたはリリースを行うことはできません。 |
XJ098 | 自動生成されたキー値 <値> は無効です。 |
XJ099 | Reader/Stream オブジェクトに長さを示す文字が含まれていません。 |
XJ100 | registerOutParameter メソッドにより指定された位取りが setter メソッドと一致しません。 精度が失われる可能性があります。 |
XJ102 | 現在位置で挿入を実行できません。 |
XJ103 | 表名を NULL にすることはできません。 |
XJ104 | 共有鍵の長さが無効です: <値>。 |
XJ105 | DES 鍵の長さが誤っています。予期した長さは <数>、得られた長さは <数> です。 |
XJ106 | そのような埋め込みはありません。 |
XJ107 | 正しくない埋め込みです。 |
XJ108 | ブロック・サイズが正しくありません。 |
XJ110 | 主表名を NULL にすることはできません。 |
XJ111 | 外部表名を NULL にすることはできません。 |
XJ112 | セキュリティー例外が発生しました。詳しくは、次の例外を参照してください。 |
XJ113 | ファイル <ファイル名> を開くことができません: <エラー> |
XJ114 | 無効なカーソル名 '<カーソル名>' です |
XJ115 | 要求された保持機能 <値> で結果セットを開くことができません。 |
XJ116 | 単一のバッチに追加できるコマンドは <数> 個以下です。 |
XJ117 | 照会のバッチ処理は J2EE 仕様への準拠のために、許可されません。 |
XJ118 | 非照会ステートメントに対して照会バッチが要求されました。 |
XJ121 | 現行カーソル位置での無効なオペレーションです。 |
XJ122 | この行に対して updateXXX メソッドが呼び出されませんでした。 |
XJ123 | 現在行または挿入行の値を更新するには、このメソッドを呼び出す必要があります。 |
XJ124 | 列は更新できません。 |
XJ125 | このメソッドはスクロール可能な ResultSet オブジェクト (TYPE_SCROLL_SENSITIVE 型または TYPE_SCROLL_INSENSITIVE 型) に対してのみ呼び出すことができます。 |
XJ126 | このメソッドをセンシティブ動的カーソルに対して呼び出さないでください。 |
XJ128 | '<値>' についてアンラップできません。 |
XJ200 | セクションの最大数 <値> を超えました。 |
XJ202 | 無効なカーソル名 '<カーソル名>' です。 |
XJ203 | カーソル名 '<カーソル名>' は既に使用されています。 |
XJ204 | 要求された保持機能 <保持された値> で結果セットを開くことができません。 |
XJ206 | SQL テキスト '<値>' にトークンがありません。 |
XJ207 | executeQuery メソッドを更新用に使用することはできません。 |
XJ208 | 非アトミック・バッチが失敗しました。 バッチは実行依頼されましたが、バッチの個別メンバーのいずれかで 1 つ以上の例外が発生しました。 特定のバッチ処理済みエレメントにおける例外を取得するには getNextException() を使用してください。 |
XJ209 | 必要なストアード・プロシージャーがサーバーにインストールされていません。 |
XJ210 | サーバー上のストアード・プロシージャーのロード・モジュール名を検出できません。 |
XJ211 | バッチ処理中にリカバリー不能な連鎖分断例外が発生しました。 バッチは非アトミックに終了します。 |
XJ212 | 無効な属性構文: <属性構文> |
XJ213 | traceLevel 接続プロパティーが数値に対して有効な形式ではありません。 |
XJ214 | CLOB または BLOB に対する free() の呼び出し中に IO エラーが発生しました。 |
XJ215 | free() メソッドの呼び出し後、その他の java.sql.Clob/java.sql.Blob メソッドを呼び出すことはできません。 |
XJ216 | The length of this BLOB/CLOB is not available yet. When a BLOB or CLOB is accessed as a stream, the length is not available until the entire stream has been processed. |
XJ217 | The locator that was supplied for this LOB/BLOB is invalid |
SQLSTATE | 文言 |
XK000 | The security policy could not be reloaded: <理由> |
SQLSTATE | 文言 |
XN001 | 作業単位の途中では、接続のリセットは許可されません。 |
XN008 | サーバー上でのエラーにより照会の処理が終了しました。 |
XN009 | BLOB/CLOB オブジェクトの長さの取得中にエラーが発生しました。例外が後に続きます。 |
XN010 | プロシージャー名を NULL にすることはできません。 |
XN011 | プロシージャー名の長さ <数> が有効な範囲である 1 から <数> の中にありません。 |
XN012 | <基本システム名> プラットフォームでは、XA はバージョン <バージョン番号> 以降に対応しています。これはバージョン <バージョン番号> です。 |
XN013 | 無効なスクロール方向です。 |
XN014 | ネットワーク・プロトコル・エラー: IOException が発生しました。パラメーターは #<値> です。 残りのデータには 0x0 が埋め込まれました。 メッセージ: <文言>。 |
XN015 | ネットワーク・プロトコル・エラー: 指定された InputStream のサイズ (パラメーター #<値>) が実際の InputStream の長さより短くなっています。 |
XN016 | ネットワーク・プロトコル・エラー: ストリーム長の検査でエラーが発生しました。パラメーターは #<値> です。 メッセージ: <文言>。 |
XN017 | ネットワーク・プロトコル・エラー: 予期せずストリームの終端に達しました。パラメーターは #<値> です。 残りのデータには 0x0 が埋め込まれました。 |
XN018 | ネットワーク・プロトコル・エラー: 指定された Reader のサイズ (パラメーター #<値>) が実際の Reader の長さより短くなっています。 |
XN019 | <値> の実行中にエラーが発生し、サーバーは <値> を戻しました。 |
SQLSTATE | 文言 |
XSAI2 | 要求されたデータベースおよび関連プロジェクト (<値>) は存在しません。 |
XSAI3 | フィーチャーはインプリメントされていません。 |
SQLSTATE | 文言 |
XSAM0 | '<値>' のモジュールをブートしようとして例外を検出しました。 |
XSAM2 | ドロップする、conglom id '<conglomID>' を持つ索引またはデータベースおよび関連プロジェクトはありません。 |
XSAM3 | conglom id '<conglomID>' を持つ索引またはデータベースおよび関連プロジェクトはありません。 |
XSAM4 | '<ソート名>' という名前のソートはありません。 |
XSAM5 | スキャンをオープンし、next() を呼び出して位置を移動してから他の呼び出しを行う必要があります。 |
XSAM6 | コンテナー <コンテナ名> 内のページ <ページ番号> 上のレコード <レコード番号> が見つかりませんでした。 |
SQLSTATE | 文言 |
XSAS0 | ソートのスキャンに不適切なスキャン・コントローラー・インターフェース・メソッドが呼び出されました。 |
XSAS1 | ソートの開始前またはソートの終了後に行をフェッチしようとしました。 |
XSAS3 | ソートに挿入された行のタイプが、ソートのテンプレートと一致しません。 |
XSAS6 | ソートするためのリソースを獲得できませんでした。 |
SQLSTATE | 文言 |
XSAX0 | XA プロトコル違反。 |
XSAX1 | 既存するグローバル・トランザクションの Xid を使ってグローバル・トランザクションを開始しようとしました。 |
SQLSTATE | 文言 |
XSCB0 | コンテナーを作成できませんでした。 |
XSCB1 | コンテナー <コンテナ名> が見つかりません。 |
XSCB2 | 必要なプロパティー <プロパティー名> が、btree の 2 次索引の createConglomerate() に与えられたプロパティー・リストで見つかりませんでした。 |
XSCB3 | インプリメントされていないフィーチャー。 |
XSCB4 | スキャンを最初の行に位置付ける前 (つまり、next() 呼び出しが行われる前) に、btree オープン・スキャン上のメソッドが呼び出されました。 スキャンの現在の状態は (<値>) です。 |
XSCB5 | btree 挿入または削除の論理 UNDO 中、ツリーでこの行が見つかりませんでした。 |
XSCB6 | 制限: ページ上のスペース不足のため、btree の 2 次索引を更新または挿入できません。 この制限を回避するには、パラメーター derby.storage.pageSize および/または derby.storage.pageReservedSpace を使用してください。 |
XSCB7 | btree のスキャン中に内部エラーを検出しました。current_rh は NULL = <値>。位置キーは NULL = <値>。 |
XSCB8 | btree のデータベースおよび関連プロジェクト <値> はクローズされています。 |
XSCB9 | テスト用に予約されています。 |
SQLSTATE | 文言 |
XSCG0 | テンプレートを作成できませんでした。 |
SQLSTATE | 文言 |
XSCH0 | コンテナーを作成できませんでした。 |
XSCH1 | コンテナー <コンテナ名> が見つかりません。 |
XSCH4 | データベースおよび関連プロジェクトを作成できませんでした。 |
XSCH5 | 基本表において、要求された列数 <数> と最大列数 <数> との間にミスマッチがありました。 |
XSCH6 | ヒープ・コンテナー (コンテナー ID <コンテナーID>) がクローズされました。 |
XSCH7 | スキャンが位置付けられていません。 |
XSCH8 | フィーチャーはインプリメントされていません。 |
SQLSTATE | 文言 |
XSDA1 | ページ上の範囲外のスロットにアクセスしようとしました |
XSDA2 | 削除済みレコードを更新しようとしました |
XSDA3 | 制限: ページ上のスペース不足のため、レコードを更新または挿入できません。 この制限を回避するには、パラメーター derby.storage.pageSize および/または derby.storage.pageReservedSpace を使用してください。 |
XSDA4 | 予期しない例外がスローされました |
XSDA5 | 削除されていないレコードの削除を取り消そうとしました |
XSDA6 | 行の列 <列名> が NULL です。オブジェクトを指すように設定する必要があります。 |
XSDA7 | クラス <クラス名> のシリアライズ可能または SQLData オブジェクトのリストアで、最初に保管されたデータよりも多くのデータの読み取りが試行されました |
XSDA8 | クラス <クラス名> のシリアライズ可能または SQLData オブジェクトのリストア中に例外が発生しました |
XSDA9 | クラス <クラス名> のシリアライズ可能または SQLData オブジェクトのリストア中、クラスが検出されませんでした |
XSDAA | 不正なタイム・スタンプ <値>。タイム・スタンプは別のページのものか、または非互換のインプリメンテーションのものです |
XSDAB | NULL のタイム・スタンプは設定できません |
XSDAC | 行またはページのいずれかをコンテナーから別のコンテナーに移動しようとしています。 |
XSDAD | 1 つのページから別のページにゼロ行を移動しようとしています。 |
XSDAE | 特殊レコード・ハンドル ID のレコード・ハンドルしか作成できません。 |
XSDAF | 通常のレコード・ハンドルのように、特殊レコード・ハンドルを使用します。 |
XSDAG | ネストされた割り振りの最上位トランザクションは、コンテナーをオープンできませんでした。 |
XSDAI | 除去しようとしているページ <ページ> は、すでに割り振り解除のためにロックされています。 |
XSDAJ | シリアライズ可能または SQLData オブジェクトの書き込み中に例外が発生しました。 |
XSDAK | レコード・ハンドル <値> に対して誤ったページが取得されています。 |
XSDAL | レコード・ハンドル <値> は、予期せず、オーバーフロー・ページを指しています。 |
XSDAM | クラス <クラス名> の SQLData オブジェクトのリストア中に例外が発生しました。 指定されたクラスをインスタンス化できません。 |
XSDAN | クラス <クラス名> の SQLData オブジェクトのリストア中に例外が発生しました。 指定されたクラスで無許可のアクセス例外が発生しました。 |
SQLSTATE | 文言 |
XSDB0 | メモリー内のページ <ページ> で予期しない例外が発生しました |
XSDB1 | ページ <ページ> に不明のページ・フォーマットがあります |
XSDB2 | コンテナー <コンテナ名> に不明のコンテナー・フォーマットがあります: <値> |
XSDB3 | コンテナー情報は、書き込み後には変更できません。<値> でしたが、現在は <値> です。 |
XSDB4 | ページ <ページ> はバージョン <バージョン番号> で、ログ・ファイルには変更バージョン <バージョン番号> が含まれています。このページのログ・レコードが欠落しているか、このページが正しくディスクに書き込まれませんでした。 |
XSDB5 | ログはページ <ページ> に変更レコードを持っていますが、これはコンテナーの終わりを超えています。 |
XSDB6 | Derby の別のインスタンスがすでにデータベース <データベース名> をブートしている可能性があります。 |
XSDB7 | 警告: Derby (インスタンス <値>) がまだアクティブである可能性があるのにもかかわらず、Derby ( インスタンス <値>) がデータベース <データベース名> をブートしようとしています。 データベースをブートできる Derby のインスタンスは、1 度に 1 つだけです。 これにより重大な、リカバリー不能の破壊が発生するか、またはすでに破壊されている可能性があります。 |
XSDB8 | 警告: Derby (インスタンス <値>) がまだアクティブである可能性があるのにもかかわらず、Derby ( インスタンス <値>) がデータベース <データベース名> をブートしようとしています。 データベースをブートできる Derby のインスタンスは、1 度に 1 つだけです。 Derby の 2 つのインスタンスが同時に同じデータベースをブートした場合、重大な、リカバリー不能な破壊が発生する可能性があります。 db2j.database.forceDatabaseLock=true プロパティーが設定されているため、db.lck が存在しなくなるまでデータベースはブートしません。 通常、このファイルはデータベースをブートする Derby の最初のインスタンスが終了した時点で除去されますが、シャットダウン方法によっては後に残ってしまうことがあります。 その場合は、手操作でこのファイルを除去することが必要になります。 db.lck ファイルを手操作で削除する前に、このデータベースにアクセスしている VM がほかにないことを確認する必要があります。 |
XSDB9 | ストリーム・コンテナー <コンテナ名> は破壊されています。 |
XSDBA | オブジェクト <オブジェクト> の割り振りに失敗しました。 |
SQLSTATE | 文言 |
XSDF0 | ファイル <ファイル名> はすでに存在するため、作成できませんでした。 |
XSDF1 | コンテナーのファイル <ファイル名> の作成中に例外 |
XSDF2 | コンテナーのファイル <ファイル名> の作成中に例外が発生しました。ファイルを除去できませんでした。 例外: <値>。 |
XSDF3 | セグメント <セグメント名> を作成できません。 |
XSDF4 | ドロップ済みコンテナーのファイル <ファイル名> の除去中に例外が発生しました。ファイルを除去できませんでした: <値>。 |
XSDF6 | 割り振りページ <ページ> が見つかりません。 |
XSDF7 | 新しく作成されたページをラッチできませんでした: <値> |
XSDF8 | 再使用するページ <ページ> が見つかりません。 |
XSDFB | オペレーションは、読み取り専用データベースではサポートされていません |
XSDFD | ページ <ページ> の 2 つの入出力で異なるページ・イメージが読み取られました。1 つ目のイメージは誤ったチェックサムを持っており、2 つ目のイメージは正しいチェックサムを持っています。 ページ・イメージは次の通りです: <値><値> |
XSDFF | 予期しない例外のため、要求されたオペレーションは失敗しました。 |
XSDFH | データベースをバックアップできません。バックアップ・コンテナー・ファイル <ファイル名> への書き込み中に入出力例外が発生しました。 |
XSDFI | データベース・リカバリー中にディスクへデータを書き込もうとしてエラーが発生しました。 データベース・ディスクが満杯でないことを確認してください。 満杯の場合は、不要なファイルを削除してからデータベースへの接続を再試行してください。 ファイル・システムが読み取り専用である、ディスクに障害がある、またはメディアに何らかの問題がある可能性もあります。 システムにてページ <ページ> の処理中にエラーが発生しました。 |
SQLSTATE | 文言 |
XSDG0 | ページ <ページ> をディスクから読み取れませんでした。 |
XSDG1 | ページ <ページ> をディスクに書き込めませんでした。ディスクが満杯でないかチェックしてください。 |
XSDG2 | ページ <ページ> に無効なチェックサム。予期されていたチェックサム=<値>、ディスク上のバージョン=<値>、ページ・ダンプ: <値> |
XSDG3 | コンテナー <コンテナー名> のメタデータにアクセスできませんでした |
XSDG5 | createFinished の呼び出し時、データベースが作成モードではありません。 |
XSDG6 | リストアの間、バックアップの中にデータ・セグメント・ディレクトリー <値> が見つかりません。 バックアップ・コピーが正しいものであり、それが破壊されていないことを確認してください。 |
XSDG7 | リストアの間、ディレクトリー <ディレクトリ名> を除去できませんでした。 許可が正しいことを確認してください。 |
XSDG8 | リストアの間、ディレクトリー '<ディレクトリ名>' を '<ディレクトリ名>' にコピーできません。 十分なスペースがあり、許可が正しいことを確認してください。 |
SQLSTATE | 文言 |
XSLA0 | ログ・ファイルをディスク <値> にフラッシュできません。 |
XSLA1 | ログ・レコードがストリームに送信されましたが、ストア (オブジェクト <オブジェクト>) に適用できません。 このことが原因でリカバリー問題も発生する可能性があります。 |
XSLA2 | システムはシャットダウンします。ログ・ファイルへのアクセス中に入出力例外が発生しました。 |
XSLA3 | ログが破壊されており、ログ・ストリームに無効なデータがあります。 |
XSLA4 | ログに書き込めません。ログが満杯の可能性があります。 不必要なファイルを削除してください。 ファイル・システムが読み取り専用である、ディスクに障害がある、またはメディアに何らかの問題がある可能性もあります。 |
XSLA5 | 何らかの理由によりログ・ストリームを読み取ってトランザクション <トランザクション識別子> をロールバックすることができません。 |
XSLA6 | データベースをリカバリーできません。 |
XSLA7 | ログにあるオペレーション <オペレーション> を再実行できません。 |
XSLA8 | トランザクション <値> をロールバックできません。<値> で <値> オペレーションの補正を試行します。 |
XSLAA | このストアは、以前に発生した例外によりシャットダウンとマークされています。 |
XSLAB | ログ・ファイル <ログファイル名> が見つかりません。logDevice プロパティーが、使用するプラットフォームに適切なパス区切り記号で正しく設定されていることを確認してください。 |
XSLAC | <値> のデータベースのフォーマットはこのソフトウェアの現行バージョンと非互換です。このデータベースは、それより新しいバージョンで作成またはアップグレードされた可能性があります。 |
XSLAD | ログ・ファイル <ログファイル名> のインスタンス <値> にあるログ・レコードが破壊されています。 予期されていたログ・レコード長は <値> でしたが、実際の長さは <値> でした。 |
XSLAE | <値> の制御ファイルは、書き込みまたは更新できません。 |
XSLAF | 読み取り専用データベースがダーティー・データ・バッファーを使って作成されました。 |
XSLAH | 読み取り専用データベースが更新されています。 |
XSLAI | チェックポイント・ログ・レコードをログに記録できません |
XSLAJ | ロギング・システムは、以前に発生した問題のためにシャットダウンするとマークされており、システムがシャットダウンして再始動されるまで、これ以上何も操作はできません。 |
XSLAK | データベースは、最大ログ・ファイル数 <値> を超えました。 |
XSLAL | ログ・レコード・サイズ <値> が、最大許容ログ・ファイル・サイズ <値> を超えました。 ログ・ファイル <ログファイル名> (位置 <数>) でエラーを検出しました。 |
XSLAM | IOException のため、{1} のデータベース・フォーマットを検証できません。 |
XSLAN | <値> のデータベースのフォーマットは、このソフトウェアの現行バージョンと非互換です。 このデータベースは、バージョン <バージョン番号versionNumber> によって作成またはアップグレードされました。 |
XSLAO | 予期しない問題 <値> が原因で、リカバリーが失敗しました。 |
XSLAP | データベース (<値>) はバージョン <バージョン番号> です。 ベータ・データベースはアップグレードできません。 |
XSLAQ | ディレクトリー <ディレクトリ名> にログ・ファイルを作成できません。 |
XSLAR | リストアの間、ログ・ファイル '<ログファイル名>' を '<値>' にコピーできません。 十分なスペースがあり、許可が正しいことを確認してください。 |
XSLAS | リストアの間、バックアップの中にログ・ディレクトリー <ディレクトリ名> が見つかりません。 バックアップ・コピーが正しいものであり、それが破壊されていないことを確認してください。 |
XSLAT | ログ・ディレクトリー '<ディレクトリ名>' が存在します。 このディレクトリーは、別のデータベースに属している可能性があります。 logDevice 属性に指定した場所が正しいことを確認してください。 |
SQLSTATE | 文言 |
XSLB1 | ログ・オペレーション <ログオペレーション> は、ログ・ストリームへの書き出し中にエラーを検出しました。誤ったログ・オペレーションが実行されたか、極端に大きなログ・オペレーションにより内部バッファーが満杯になったことが原因と考えられます。 |
XSLB2 | ログ・オペレーション <ログオペレーション> が超過データをロギングしています。内部ログ・バッファーが満杯です。 |
XSLB4 | truncationLWM <値> が見つかりません。 |
XSLB5 | 切り捨てポイント <値> に不正な truncationLWM インスタンス <値>。 正しい範囲は <値> から <値> です。 |
XSLB6 | 0 または -ve の長さのログ・レコードをログに記録しようとしています。 |
XSLB8 | <値> の限度を超えて、スキャンを <値> にリセットしようとしています。 |
XSLB9 | これ以上変更を発行できません。ログ・ファクトリーが停止されました。 |
SQLSTATE | 文言 |
XSRS0 | すでにフリーズした後にデータベースをフリーズすることはできません。 |
XSRS1 | データベースを <値> にバックアップできません。これはディレクトリーです。 |
XSRS4 | ファイルを (バックアップ中に) <値> から <値> に名前変更しようとしてエラーが発生しました。 |
XSRS5 | ファイルを (バックアップ中に) <パス> から <パス> にコピーしようとしてエラーが発生しました。 |
XSRS6 | バックアップ・ディレクトリー <ディレクトリー名> を作成できません。 |
XSRS7 | バックアップで予期しない例外がキャッチされました。 |
XSRS8 | ロギング用装置はデータベース作成時にしか設定できません。ここですぐに変更することはできません。 |
XSRS9 | レコード <レコード名recordName> は、もはや存在しません |
XSRSA | ログ記録されておらずコミットされていないオペレーションが存在する場合は、データベースをバックアップできません。 バックアップをブロックしているオペレーションのトランザクションをコミットしてください。 |
XSRSB | ログ記録されておらずコミットされていないオペレーションを含むトランザクションではバックアップを実行できません。 |
XSRSC | データベースを <ディレクトリ位置directoryLocation> にバックアップできません。これはデータベース・ディレクトリーです。 |
SQLSTATE | 文言 |
XSTA2 | トランザクションをアクティブにしようとしたとき、別のトランザクションがすでにアクティブでした。 |
SQLSTATE | 文言 |
XSTB0 | トランザクションのアボート中に例外がスローされました。 |
XSTB2 | トランザクションの変更をログに記録できません。おそらく読み取り専用データベースに書き込もうとしていると考えられます。 |
XSTB3 | (おそらく以前のエラーが原因で) ログ・マネージャーが NULL のため、トランザクションをアボートできません。 |
XSTB5 | ログを使用しないでデータベースを作成中に、予期しない問題が発生しました。 |
XSTB6 | 1 つのトランザクション表がすでに使用中の場合、それを別のトランザクション表に置換することはできません。 |
SQLSTATE | 文言 |
XXXXX | 通常のデータベース・セッション・クローズ。 |
• | もしアプリケーションがJDK1.6以上のバージョンで動作しているなら、以下のいずれも行う必要はありません。アプリケーションが最初に接続を要求したときに、自動的にEmbeddedDriverがロードされます。 | |
• | ||
• | new org.apache.derby.jdbc.EmbeddedDriver() Class.forName("org.apache.derby.jdbc.EmbeddedDriver")と同様ですが、プログラムをコンパイルするときにクラスを必要とします。 | |
• | Class c = org.apache.derby.jdbc.EmbeddedDriver.class これもClass.forName("org.apache.derby.jdbc.EmbeddedDriver")と同様ですが、プログラムをコンパイルするときにクラスを必要とします。擬似的な静的なフィールドのclassは、指定された名前のクラスと評価されます。 | |
• | システムプロパティのjdbc.drivers システムプロパティの設定は、起動のコマンドラインあるいはアプリケーション内にて行います。アプレットではこれは不可能です。 |
jdbc:derby: [サブサブプロトコル:][データベース名][;属性]*
• | |||||||||||
• | サブサブプロトコル: サブサブプロトコルは必要に応じて記述され、Derbyがデータベースを探すディレクトリやクラスパス、jarファイルを指定します。サブサブプロトコルが使われることは稀ですが、多くの場合は読み取り専用のデータベースに対して使われます。
サブサブプロトコル は以下のいずれかです。
jar: はデータベース名:の直前に、追加の要素を必要とします。
アーカイブへのパスはデータベースのあるjarやzipファイルへの、ファイル名を含むパスです。 読み取り専用のデータベースへのデータベース接続URLの例は、Derby ディベロッパーズ ガイドを参照してください。 | ||||||||||
• | データベース名 接続先である、既存あるいは新規のデータベース名を指定します。 データベース名は単独で指定することも、相対/絶対パスと共に指定することもできます。Derby ディベロッパーズ ガイドの第1章にある、
"標準的な接続-ファイルシステムにあるデータベースへの接続"を参照してください。 | ||||||||||
• | 属性 0個以上のデータベース接続URL属性を指定します。属性の詳細はDerbyのデータベース接続URLの属性にて記述されます。 |
import java.util.Properties; Connection conn = DriverManager.getConnection( "jdbc:derby:sampleDB;create=true"); /* 属性をPropertiesオブジェクトに渡す。*/ Properties myProps = new Properties(); myProps.put("create", "true"); Connection conn = DriverManager.getConnection( "jdbc:derby:sampleDB", myProps); /* ユーザ名およびパスワードを渡す。*/ Connection conn = DriverManager.getConnection( "jdbc:derby:sampleDB", "dba", "password");
• | createArrayOf( java.lang.String, java.lang.Object[] ) | |
• | createNClob( ) | |
• | createSQLXML( ) | |
• | createStruct( java.lang.String, java.lang.Object[] ) | |
• | getTypeMap( ) | |
• | prepareStatement( java.lang.String, int[] ) | |
• | prepareStatement( java.lang.String, java.lang.String[] ) | |
• | setTypeMap( java.util.Map ) |
• | PROCEDURE_CAT Derbyでは常に「null」です。 | |
• | PROCEDURE_SCHEM Javaの手続きのスキーマです。 | |
• | PROCEDURE_NAME 手続きの名前です。 | |
• | COLUMN_NAME 引数の名前です。(column-Name-Patternを参照してください。) | |
• | COLUMN_TYPE shortで行を記述します。配列ではないメソッドの引数ならば、常にDatabaseMetaData.procedureColumnInです。もし配列であるメソッドの引数なら、DatabaseMetaData.procedureColumnInOutです。返り値であれば、常にDatabaseMetaData.procedureColumnReturnです。 | |
• | TYPE_NAME Derby固有の型名です。 | |
• | NULLABLE プリミティブな引数なら常にDatabaseMetaData.procedureNoNullsで、オブジェクトの引数ならDatabaseMetaData.procedureNullableです。 | |
• | REMARKS a String describing the java type of the method parameter | |
• | COLUMN_DEF 列の既定値を表す文字列です。(nullである場合もあります。) | |
• | SQL_DATA_TYPE 将来利用するため、JDBCにて予約されています。 | |
• | SQL_DATETIME_SUB 将来利用するため、JDBCにて予約されています。 | |
• | CHAR_OCTET_LENGTH 文字やバイナリ列の最大長です。(他の型であれば値はNULLです。) | |
• | ORDINAL_POSITION 手続きの入力/出力する引数への、1から始まる順番です。 | |
• | IS_NULLABLE 引数を空とすることができるかを表す文字列です。(YESなら引数にNULLを含めることができ、NOならできません。) | |
• | SPECIFIC_NAME スキーマにて手続きを一意に特定する名前です。 | |
• | METHOD_ID Derby固有の列です。 | |
• | PARAMETER_ID Derby固有の列です。 |
• | 表の主キー | |
• | 表の一意性制約あるいは一意性索引 | |
• | 表にある全列 |
CallableStatement call = conn.prepareCall( "{CALL doubleMyInt(?)}"); // 値を代入する前に引数を登録する事が、 // inout引数では良いやり方です。 call.registerOutParameter(1, Types.INTEGER); call.setInt(1,10); call.execute(); int retval = call.getInt(1);
public static void doubleMyInt(int[] i) { i[0] *=2; /* Derbyは配列の最初の要素を返します。*/ }
JDBCの型 | メソッドの引数の配列型 | 値と返り値の型 |
BIGINT | long[] | long |
BINARY | byte[][] | byte[] |
BIT | boolean[] | boolean |
DATE | java.sql.Date[] | java.sql.Date |
DOUBLE | double[] | double |
FLOAT | double[] | double |
INTEGER | int[] | int |
LONGVARBINARY | byte[][] | byte[] |
REAL | float[] | float |
SMALLINT | short[] | short |
TIME | java.sql.Time[] | java.sql.Time |
TIMESTAMP | java.sql.Timestamp[] | java.sql.Timestamp |
VARBINARY | byte[][] | byte[] |
OTHER | yourType[] | yourType |
JAVA_OBJECT (Java2/JDBC 2.0の環境でのみ有効) | yourType[] | yourType |
• | setBinaryStream 解釈されないバイトストリームに使われます。 | |
• | setAsciiStream ASCII文字のストリームに使われます。 | |
• | setUnicodeStream Unicode文字のストリームに使われます。 |
列のデータ型 | 対応するJavaの型 | AsciiStream | UnicodeStream | BinaryStream |
CLOB | java.sql.Clob | x | x | ' |
CHAR | ' | x | x | ' |
VARCHAR | ' | x | x | ' |
LONGVARCHAR | ' | X | X | ' |
BINARY | ' | x | x | x |
BLOB | java.sql.Blob | x | x | x |
VARBINARY | ' | x | x | x |
LONGVARBINARY | ' | x | x | X |
• | この表にて大文字のXは、ストリームの型として推奨される対照型である事を表します。SQL型とjava.sql.Typesの対応を参照してください。 | |
• | もしストリームの記録される列の型がLONG VARCHARないしLONG VARCHAR FOR BIT DATAの何れでも無い場合、ストリーム全体が一括してメモリに収まらなければなりません。
LONG VARCHARおよびLONG VARCHAR FOR BIT DATAの列に記録されるストリームについては、この制限はありません。 | |
• | ストリームを他の組み込みデータ型やユーザが定義したデータ型に記録することはできません。 |
Statement s = conn.createStatement(); s.executeUpdate("CREATE TABLE atable (a INT, b LONG VARCHAR)"); conn.commit(); java.io.File file = new java.io.File("derby.txt"); int fileLength = (int) file.length(); // まず入力ストリームを作ります。 java.io.InputStream fin = new java.io.FileInputStream(file); PreparedStatement ps = conn.prepareStatement( "INSERT INTO atable VALUES (?, ?)"); ps.setInt(1, 1); // 入力パラメータに入力ストリームを代入します。 ps.setAsciiStream(2, fin, fileLength); ps.execute(); conn.commit();
// データをストリームとして取得する。 ResultSet rs = s.executeQuery("SELECT b FROM atable"); while (rs.next()) { // java.io.InputStreamを使ってデータを取得する。 java.io.InputStream ip = rs.getAsciiStream(1); // ストリームを処理する。--これはデータを出力する// 一般的なやり方である。 int c; int columnSize = 0; byte[] buff = new byte[128]; for (;;) { int size = ip.read(buff); if (size == -1) break; columnSize += size; String chunk = new String(buff, 0, size); System.out.print(chunk); } } rs.close(); s.close(); conn.commit();
java.sql.Types | SQL型 |
BIGINT | BIGINT |
BINARY | CHAR FOR BIT DATA |
BIT1 | CHAR FOR BIT DATA |
BLOB | BLOB (JDBC 2.0以降) |
CHAR | CHAR |
CLOB | CLOB (JDBC 2.0以降) |
DATE | DATE |
DECIMAL | DECIMAL |
DOUBLE | DOUBLE PRECISION |
FLOAT | DOUBLE PRECISION2 |
INTEGER | INTEGER |
LONGVARBINARY | LONG VARCHAR FOR BIT DATA |
LONGVARCHAR | LONG VARCHAR |
NULL | データ型ではなく、何れか特定の型の値 |
NUMERIC | DECIMAL |
REAL | REAL |
SMALLINT | SMALLINT |
SQLXML3 | XML |
TIME | TIME |
TIMESTAMP | TIMESTAMP |
VARBINARY | VARCHAR FOR BIT DATA |
VARCHAR | VARCHAR |
1.
| BITはJDBC 2.0以前の環境でのみ有効です。 | |
2.
| FLOAT型でのみ値を渡すことが可能ですが、DOUBLE PRECISIONの値として記録されます。また取得した場合の型はDOUBLEと判定されます。 | |
3.
| SQLXMLはJDBC 4.0以降の環境でのみ有効です。Derbyにて、SQLXMLはSQLのXML型に対応します。
しかし、Derbyはjava.sql.Types.SQLXMLのデータ型を認識せず、JDBCのレベルはXMLデータ型の機能を提供しません。XMLやそれに関連する演算子の機能はSQLの層でのみ実現されています。
詳細はXMLデータ型を参照してください。 |
• | BLOBの機能Derbyではjava.sql.Blobインターフェイスとjava.sql.PreparedStatementインターフェイス: JDBC2.0で提供されるメソッドおよびjava.sql.ResultSetのBLOBに関連したメソッドが用意されています。
CallableStatementのgetBlobメソッドは実装されていません。 | |
• | CLOBの機能Derbyではjava.sql.Clobインターフェイスとjava.sql.PreparedStatementインターフェイス: JDBC2.0で提供されるメソッドとjava.sql.ResultSetのCLOBに関連したメソッドが用意されています。
CallableStatementのgetClobメソッドは実装されていません。 |
• | 情報をSQLのBLOB型で記録します。LONG VARCHAR FOR BIT DATA、BINARYおよびVARCHAR FOR BIT DATA型でも可能です。 | |
• | 情報をSQLのCLOB型で記録します。LONG VARCHAR、CHARおよびVARCHAR型でも可能です。 | |
• | java.sql.ResultSetインターフェイスのgetBlobあるいはgetClobメソッドを使って、参照される情報を扱うBLOBやCLOBを取得します。 | |
• | LOBの列に対して静的なメソッドを呼ぶことはできません。 |
• | LOB型は等号(=)や不等号(!=、 <>. で比較できません。 | |
• | LOB型で順序付けることはできません。また<、 <=、 >、 >=による比較も不可能です。 | |
• | LOB型への索引やLOB型の主キー列は不可能です。 | |
• | LOB型について、DISTINCT、GROUP BY、ORDER BY節は利用できません。 | |
• | 他の基本型と違い、LOB型では暗黙の型変換を行えません。 |
返り値 | シグネチャ | 実装の覚書 |
InputStream | getBinaryStream() | ' |
byte[] | getBytes(long pos, int length) | pos < 1だったり、posがlengthより大きかったり、length <= 0であった場合、例外が発生します。 |
long | length() | ' |
long | position(byte[] pattern, long start) | pattern == nullであったり、start <
1であったり、patternの配列長が0であった場合、例外が発生します。 |
long | position(Blob pattern, long start) | pattern == nullだったり、start <
1だったり、patternの長さが0であったり、patternの最初の数バイトを読むとき例外が起きると、例外が発生します。 |
返り値 | シグネチャ | 実装上の覚書 |
InputStream | getAsciiStream() | ' |
Reader | getCharacterStream() | ' |
String | getSubString(long pos, int length) | pos < 1だったり、posが Clobの長さより大きかったり、length <= 0であった場合、例外が発生します。 |
long | length() | ' |
long | position(Clob searchstr, long start) | searchStr == nullだったりstart <
1だったり、searchStr の長さが0だったり、searchStrの最初の数バイトを読むとき例外が起きると、例外が発生します。 |
long | position(String searchstr, long start) | searchStr == nullだったり、start <
1だったり、patternが空文字列であった場合、例外が発生します。 |
• | getBlob | |
• | getClob | |
• | getAsciiStream | |
• | getBinaryStream | |
• | getUnicodeStream |
ResultSet rs = s.executeQuery("SELECT text FROM CLOBS WHERE i = 1"); while (rs.next()) { aclob=rs.getClob(1); ip = rs.getAsciiStream(1); }
返り値 | シグネチャ |
Statement | createStatement( int resultSetType, int resultSetConcurrency) |
PreparedStatement | prepareStatement(String sql, int resultSetType, int
resultSetConcurrency) |
CallableStatement | prepareCall(String sql, int resultSetType, int resultSetConcurrency |
返り値 | シグネチャ | 実装の但し書き |
void | addBatch() | ' |
ResultSetMetaData | getMetaData() | ' |
void | setBlob(int i, Blob x) | ' |
void | setClob(int i, Clob x) | ' |
返り値 | シグネチャ | 実装の但し書き |
boolean | absolute(int row) | ' |
void | afterLast() | ' |
void | beforeFirst() | ' |
void | beforeFirst() | ' |
void | deleteRow() | 行を削除するとResultSetの位置は次行の直前となります。ResultSetのcloseメソッド以外を呼び出す場合、プログラムはResultSetの位置を決めなおす必要があります。 |
boolean | first() | ' |
Blob | getBlob(int columnIndex) | |
Blob | getBlob(String column-Name) | |
Clob | getClob(int columnIndex) | |
Clob | getClob(String column-Name) | |
int | getConcurrency() | Statementの平行処理がCONCUR_READ_ONLYである場合、このメソッドはResultSet.CONCUR_READ_ONLYを返します。
それに対してStatementの平行処理がCONCUR_UPDATABLEであった場合、返り値の値は元となるSQLの結果セットが更新可能か否かにより決まります。もしSQLの結果セットが更新可能であれば、getConcurrency()はResultSet.CONCUR_UPDATABLEを返します。もしSQLの結果セットが更新不可能であれば、ResultSet.CONCUR_READ_ONLYが返ります。 |
int | getFetchDirection() | ' |
int | getFetchSize() | Always returns 1. |
int | getRow() | ' |
void | insertRow() | ' |
boolean | isAfterLast() | ' |
boolean | isBeforeFirst | ' |
boolean | isFirst() | ' |
boolean | isLast() | ' |
boolean | last() | ' |
void | moveToCurrentRow() | ' |
void | moveToInsertRow() | ' |
boolean | previous() | ' |
boolean | rowDeleted() | 前方にのみ進むことができる結果セットではこのメソッドは常にfalseを返し、スクロール可能な結果セットにて行が削除された時には、このメソッドは結果セットあるいは位置指定した削除を介してtrueを返します。 |
boolean | rowInserted() | 常にfalseが返ります。 |
boolean | rowUpdated() |
前方にのみ進むことができる結果セットではこのメソッドは常にfalseを返し、スクロール可能な結果セットにて行が更新された時には、このメソッドは結果セットあるいは位置指定した更新を介してtrueを返します。 |
boolean | relative(int rows) | ' |
void | setFetchDirection(int direction) | ' |
void | setFetchSize(int rows) | A fetch size of 1 is the only size supported. |
void | updateRow() | 行を更新した直後、ResultSetの位置は次行の直前となります。
ResultSetのcloseメソッド以外を呼び出す場合、プログラムはResultSetの位置を決めなおす必要があります。 |
返り値 | シグネチャ | 実装の但し書き |
void | addBatch(String sql) | ' |
void | clearBatch() | ' |
int[] | executeBatch() | ' |
int | getFetchDirection() | 例外は挙がらないが、メソッド呼出は無視される。 |
int | getFetchSize() | 例外は挙がらないが、メソッド呼出は無視される。 |
int | getMaxFieldSize() | ' |
void | getMaxRows() | ' |
void | setEscapeProcessing(boolean enable) | ' |
void | setFetchDirection(int direction) | 例外は挙がらないが、メソッド呼出は無視される。 |
void | setFetchSize(int rows) | 例外は挙がらないが、メソッド呼出は無視される。 |
void | setMaxFieldSize(int max) | BlobsとClobsには働かない。 |
void | setMaxRows() | ' |
• | アプリケーションはDECIMALの値を取得したり設定したりするとき、getString()やsetString()のような、getXXXおよびsetXXXのうち、代替となるJDBCのメソッドを利用しなければなりません。JDBC 2.0やJDBC 3.0にてDECIMAL型に対して利用可能な代替のメソッドはJSR169にて何れも利用できます。 | |
• | CONTAINS SQLやREADS SQL DATA、MODIFIES
SQL DATA等のサーバ側のJDBC引数をとるJavaによる関数やプロシージャは、JSR169では利用できません。 | |
• | 接続を確立するための標準API(jdbc:default:connection)はJSR169では利用できません。
ルーチンがjdbc:default:connectionを使って接続を確立しようとすると実行時エラーが発生することがあります。 | |
• | 診断表は利用できません。 | |
• | トリガは利用できません。 | |
• | 暗号化されたデータベースは利用できません。 | |
• | DriverManagerは利用できません。DriverManager.getConnection()で接続を確立できません。 |
• | DatabaseMetaDataに新規に追加されたメソッド。java.sql.DatabaseMetaData インターフェイス: JDBC 3.0で利用可能なメソッドを参照してください。 | |
• | 引数のメタ情報の取得。java.sql.ParameterMetaDataインターフェイス:JDBC3.0で利用可能なメソッドとjava.sql.PreparedStatementインターフェイスを参照してください。 | |
• | 自動生成されたキーの取得。java.sql.Statementインターフェイスとjava.sql.DatabaseMetaData インターフェイス: JDBC 3.0で利用可能なメソッドを参照してください。 | |
• | セーブポイント。java.sql.Connectionインターフェイス: JDBC3.0にて利用可能なメソッドを参照してください。 | |
• | HOLDカーソル。java.sql.DatabaseMetaData インターフェイス: JDBC 3.0で利用可能なメソッドを参照してください。 |
返り値 | シグネチャ | 実装の但し書き |
Savepoint | setSavepoint (String name) | 現在のトランザクションにて指定した名前のセーブポイントを作成して、それを表す新規セーブポイントオブジェクトを返す。 |
Savepoint | setSavepoint () | 現在のトランザクションにてセーブポイントを作成して、それを表す新規セーブポイントオブジェクトを返す。 |
void | releaseSavepoint (Savepoint savepoint) | 指定したセーブポイントオブジェクトを現在のトランザクションから除去する。 |
void | rollback(Savepoint savepoint) | 指定されたセーブポイント以降に行われた変更を取り消す。 |
PreparedStatement | prepareStatement(String sql, int autoGeneratedKeys) | sqlがINSERT文でなければ、autoGeneratedKeysの引数は無視される。 |
PreparedStatement | prepareStatement(String sql, int [] columnIndexes) | sqlがINSERT文でなければ、columnIndexesは無視される。配列のそれぞれの列の番号は、INSERTの対象表にある自動増分列に対応する。組み込みモードでのみ利用可能。 |
PreparedStatement | prepareStatement(String sql, String [] columnNames) | sqlがINSERT文でなければ、columnNamesは無視される。配列のそれぞれの列名は、INSERTの対象表の自動増分列を指定する。組み込みモードでのみ利用可能。 |
返り値 | シグネチャ | 実装の但し書き |
boolean | supportsSavepoints() | ' |
int | getDatabaseMajorVersion() | ' |
int | getDatabaseMinorVersion() | ' |
int | getJDBCMajorVersion() | ' |
int | getJDBCMinorVersion() | ' |
int | getSQLStateType() | ' |
boolean | supportsNamedParameters() | ' |
boolean | supportsMultipleOpenResults() | ' |
boolean | supportsGetGeneratedKeys() | ' |
boolean | supportsResultSetHoldability(int holdability) | ' |
int | getResultSetHoldability() | ResultSet.HOLD_CURSORS_OVER_COMMITを返す。 |
返り値 | シグネチャ | 実装の但し書き |
int | getParameterCount() | ' |
int | isNullable(int param) | ' |
boolean | isSigned(int param) | ' |
int | getPrecision(int param) | ' |
int | getScale(int param) | ' |
int | getParameterType(int param) | ' |
String | getParamterTypeName (int param) | ' |
String | getParamterClassName (int param) | ' |
int | getParameterMode (int param) | ' |
返り値 | シグネチャ | 実装の但し書き |
ParameterMetaData | getParameterMetaData() | ' |
conn.setAutoCommit(false); // セーブポイントを使うためには自動コミットを切らなければなりません。 Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate("INSERT INTO TABLE1 (COL1) VALUES(1)"); // セーブポイントの設定 set savepoint Savepoint svpt1 = conn.setSavepoint("S1"); rows = stmt.executeUpdate("INSERT INTO TABLE1 (COL1) VALUES (2)"); ... conn.rollback(svpt1); ... conn.commit();
返り値 | シグネチャ | 実装の但し書き |
ResultSet | getGeneratedKeys() | ユーザが自動生成キーを有効にしていた場合、このメソッドはIDENTITY_VAL_LOCAL関数が呼ばれた時と同じ値を返します。もし有効ではないなら、この関数はnullを返します。 |
boolean | execute(String sql, int autoGeneratedKeys) | sqlがINSERT文ではない場合、autoGeneratedKeys引数は無視されます。 |
boolean | execute(String sql, int [] columnIndexes) | sqlがINSERT文ではない場合、columnIndexesは無視されます。配列のそれぞれの列番号は、INSERTの対象表にある自動増分の列に対応します。組み込みモードでのみ利用することができます。 |
boolean | execute(String sql, String [] columnNames) | sqlがINSERT文ではない場合、columnNamesは無視されます。配列のそれぞれの列名は、自動増分の列に対応します。組み込みモードでのみ利用することができます。 |
int | executeUpdate(String sql, int autoGeneratedKeys) | sqlがINSERT文ではない場合、autoGeneratedKeys引数は無視されます。 |
int | executeUpdate(String sql, int [] columnIndexes) | sqlがINSERT文ではない場合、columnIndexesは無視されます。
配列のそれぞれの列番号は、INSERTの対象表の自動増分列に対応します。組み込みモードでのみ利用することができます。 |
int | executeUpdate(String sql, String [] columnNames) | sqlがINSERT文ではない場合、columnNamesは無視されます。配列のそれぞれの列名は、INSERTの対象表にある自動増分列を表します。組み込みモードでのみ利用が可能です。 |
• | 自動生成されたキーを取得できるようにする定数。具体的にはStatement.RETURN_GENERATED_KEYSです。 | |
• | 挿入する行の列の内、取得できるようにする列名の配列。配列にある列名のいずれも自動生成される列で無ければ、Derby は例外を挙げます。(なおこの引数は、Derbyでは組み込みドライバでのみ利用可能です。) | |
• | 挿入する行の列の内、取得できるようにする列位置の配列。配列のいずれも自動生成される列でなければ、Derbyは例外を挙げます。(この引数はDerbyでは組み込みドライバでのみ利用可能です。) |
CREATE TABLE TABLE1 (C11 int, C12 int GENERATED ALWAYS AS IDENTITY)
Statement stmt = conn.createStatement(); stmt.execute( "INSERT INTO TABLE1 (C11) VALUES (1)", Statement.RETURN_GENERATED_KEYS); ResultSet rs = stmt.getGeneratedKeys();
Statement stmt = conn.createStatement(); String [] colNames = new String [] { "C12" }; stmt.execute( "INSERT INTO TABLE1 (C11) VALUES (1)", colNames); ResultSet rs = stmt.getGeneratedKeys();
Statement stmt = conn.createStatement(); int [] colIndexes = new int [] { 2 }; stmt.execute( "INSERT INTO TABLE1 (C11) VALUES (1)", colIndexes); ResultSet rs = stmt.getGeneratedKeys();
• | DataSources JDBC 4.0で提供される開発省力化を実現するため、Derbyには、新しいjavax.sql.DataSourceの実装が導入されました。javax.sql.DataSource インターフェイス: JDBC 4.0の機能を参照してください。
| |
• | JDBCドライバの自動読み込み 前のバージョンのJDBCではアプリケーションは接続の要求に先立ち、ドライバの登録を自力で行わなければなりませんでした。
JDBC 4.0からは、アプリケーションがドライバ名を引数にとってClass.forName()を呼ぶ必要はありません。代わりにアプリケーションが接続を要求したときに、DriverManagerが適切なJDBCドライバを探します。
| |
• | SQLExceptions. JDBC 4.0 ではより洗練されたSQLExceptionのサブクラスが導入されました。洗練されたSQLExceptionのサブクラスを参照してください。 | |
• | ラッパー JDBC 4.0ではラップされたJDBCオブジェクトという概念が導入されました。この仕組みはアプリケーションサーバがベンダー特有の機能拡張が施された、ConnectionやStatementsおよびResultSets等の標準JDBCオブジェクトを扱うための仕組みです。
Derbyには該当する機能拡張は無いので、Derbyでこの機能はそれほどの意味を持ちません。 | |
• | 文のイベント
JDBC 4.0のコネクションプールは、文が閉じたり、文でエラーが発生したりといったイベントを聞くことができます。javax.sql.PooledConnectionには新しいメソッドが追加されています。addStatementEventListenerとremoveStatementEventListenerです。 | |
• | Streaming API
JDBC 4.0ではCallableStatementやPreparedStatement、ResultSetにメソッドの新しいオーバーロードが追加されました。該当するオーバーロードとは、java.io.InputStreamおよびjava.io.Readerを引数にとるsetXXXメソッドやupdateXXXメソッドです。この新しいオーバーロードでは、長さの引数を省いたり、long型の長さを指定したりすることができます。 | |
• | 新しいメソッド 次のインターフェイスに新しいメソッドが追加されました。
javax.sql.Connection、
javax.sql.DatabaseMetaData
およびjavax.sql.Statementjava.sql.Connectionインターフェイス:JDBC4.0で提供される機能、java.sql.DatabaseMetaDataインターフェイス: JDBC4.0の機能およびjava.sql.Statementインターフェイス: JDBC 4.0で利用可能な機能を参照してください。 |
• | java.sql.SQLClientInfoException | |
• | java.sql.SQLDataException | |
• | java.sql.SQLFeatureNotSupportedException | |
• | java.sql.SQLIntegrityConstraintViolationException | |
• | java.sql.SQLInvalidAuthorizationSpecException | |
• | java.sql.SQLSyntaxErrorException | |
• | java.sql.SQLTransactionRollbackException | |
• | java.sql.SQLTransientConnectionException |
• | 利用可能な機能の公開機能 - JDBC4.0からデータベースにて利用可能な機能を問い合わせるためのメソッドが幾つか追加されました。このメソッドには以下のものがあります。
autoCommitFailureClosesAllResultSetsと
providesQueryObjectGenerator、
getClientInfoPropertiesおよび
supportsStoredFunctionsUsingCallSyntaxです。
| |
• | 列のメタ情報 - 値の自動生成される列であれば、getColumnsメソッドから得られる情報では、IS_AUTOINCREMENTはYESです。 | |
• | 関数のメタ情報 - JDBC 4.0から関数の引数や返り値を調べるためのメソッドが幾つか追加されました。これらを使って、ユーザが作成した関数を調べることもできます。
追加されたメソッドは、getFunctionsおよびgetFunctionColumnsです。
これらのメソッドの振る舞いは、getProceduresおよびgetProcedureColumnsと同様です。 | |
• | 手続きのメタ情報 - getProcedureColumnsメソッドで、手続きの引数についてより多くの情報が得られるようになりました。より詳細な情報については、このメソッドのjavadocを参照してください。getProcedureColumnsが返すResultSetに新規に追加された列は以下のとおりです。
COLUMN_DEF、
SQL_DATA_TYPE、
SQL_DATETIME_SUB、
CHAR_OCTET_LENGTH、
ORDINAL_POSITION、
IS_NULLABLEそれとSPECIFIC_NAMEです。 | |
• | スキーマのメタ情報 - JDBC 4.0ではgetSchemasに新しいオーバーロードが追加されています。このオーバーロードにより、名前を元にしてスキーマの情報を調べることができます。 |
• | org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource40 | |
• | org.apache.derby.jdbc.EmbeddedDataSource40 | |
• | org.apache.derby.jdbc.EmbeddedXADataSource40 | |
• | org.apache.derby.jdbc.ClientConnectionPoolDataSource40 | |
• | org.apache.derby.jdbc.ClientDataSource40 | |
• | org.apache.derby.jdbc.ClientXADataSource40 |
• | 呼び出し文のJDBCエスケープキーワード このエスケープキーワードはCallableStatementsにて用いられます。 | |
• | JDBCエスケープ構文 このエスケープキーワードは日付書式で用いられます。 | |
• | LIKE節のJDBCエスケープ構文 このエスケープキーワードはLIKE節にてエスケープ文字を指定するために用いられます。 | |
• | fnキーワードを使ったJDBCエスケープ構文 このエスケープキーワードはスカラー関数に用いられます。 | |
• | 外部結合のJDBCエスケープ構文 このエスケープキーワードは外部結合に用いられます。 | |
• | 時刻書式のJDBCエスケープ構文 このエスケープキーワードは時刻書式に用いられます。 | |
• | タイムスタンプ書式のJDBCエスケープ構文 このエスケープキーワードはタイムスタンプ書式に用いられます。 |
-- "%"という文字で始まる全ての行を見つける。 SELECT a FROM tabA WHERE a LIKE '$%%' {escape '$'} -- "_"という文字で終わる全ての行を見つける。 SELECT a FROM tabA WHERE a LIKE '%=_' {escape '='}
{fn 関数呼び出し}
abs(数式)
acos(数)
asin(数)
atan(数)
ceiling(数)
concat(文字式, 文字式)
cos(数)
degrees(数)
floor(数)
locate(文字式,文字式 [, 開始位置] )
log(数)
log10(数)
mod(整数, 整数)
radians(数)
sin(数)
sqrt(浮動小数点数式)
substring(文字式, 開始位置, 長さ)
tan(数)
TIMESTAMPADD( 時間の種類, 整数式, タイムスタンプ式 )
TIMESTAMPDIFF( 時間の種類, タイムスタンプ式1, タイムスタンプ式2 )
-- 外部結合 SELECT * FROM {oj Countries LEFT OUTER JOIN Cities ON (Countries.country_ISO_code=Cities.country_ISO_code)} -- 他の結合処理 SELECT * FROM {oj Countries JOIN Cities ON (Countries.country_ISO_code=Cities.country_ISO_code)} -- 表式は結合式でもかまわないので、 -- FROM句に複数の結合処理を記述できます。 SELECT E.EMPNO, E.LASTNAME, M.EMPNO, M.LASTNAME FROM {oj EMPLOYEE E INNER JOIN DEPARTMENT INNER JOIN EMPLOYEE M ON MGRNO = M.EMPNO ON E.WORKDEPT = DEPTNO};
• | 暗号化されたデータベースの新規作成 | |
• | 既存の暗号化されていないデータベースの暗号化を設定 | |
• | 既存の暗号化されたデータベースの起動 |
• | jdbc:derby:toursDB | |
• | jdbc:derby:;databaseName=toursDB | |
• | jdbc:derby:(接続要求時に渡すPropertiesオブジェクトにて、databaseName属性の値にtoursDBを指定する。) |
jdbc:derby:toursDB;databaseName=flightsDB
• | 新規データベースの暗号化 | |
• | 既存の暗号化されていないデータベースの暗号化設定 | |
• | 既存の暗号化されたデータベースの起動 |
jdbc:derby:newDB;create=true;dataEncryption=true; encryptionAlgorithm=DES/CBC/NoPadding;encryptionKey=6162636465666768
jdbc:derby:salesdb;dataEncryption=true;encryptionKey=6162636465666768
jdbc:derby:encryptedDB;encryptionKey=6162636465666768
-- 新規の暗号化されたデータベースを作成します。 jdbc:derby:encryptedDB;create=true;dataEncryption=true; encryptionProvider=com.sun.crypto.provider.SunJCE; encryptionAlgorithm=DESede/CBC/NoPadding; bootPassword=cLo4u922sc23aPe -- 既存のデータベースに暗号化を設定します。 jdbc:derby:salesdb;dataEncryption=true; encryptionProvider=com.sun.crypto.provider.SunJCE; encryptionAlgorithm=DESede/CBC/NoPadding; bootPassword=cLo4u922sc23aPe
algorithmName/feedbackMode/padding
-- 暗号化された新規データベースを作成する。 jdbc:derby:encryptedDB;create=true;dataEncryption=true; encryptionProvider=com.sun.crypto.provider.SunJCE; encryptionAlgorithm=DESede/CBC/NoPadding; bootPassword=cLo4u922sc23aPe -- 既存のデータベースの暗号化を設定する。 jdbc:derby:salesdb;dataEncryption=true; encryptionProvider=com.sun.crypto.provider.SunJCE; encryptionAlgorithm=DESede/CBC/NoPadding; bootPassword=cLo4u922sc23aPe
言語コード | 説明 |
de | German |
en | English |
es | Spanish |
ja | Japanese |
国コード | 説明 |
DE | Germany |
US | United States |
ES | Spain |
MX | Mexico |
JP | Japan |
jdbc:derby:MexicanDB;create=true;territory=es_MX
-- 複数の接続を持つ既存のデータベースのトレースを有効にする。 jdbc:derby://localhost:1527/mydb;traceDirectory=/home/mydir/mydbtracedir -- ディレクトリのトレースファイル名を指定する。 jdbc:derby://localhost:1527/mydb;traceDirectory=/home/mydir/mydbtracedir;traceFile=trace.out -- 既定のトレースファイルに追加する。 jdbc:derby://localhost:1527/mydb;traceDirectory=/home/mydir/mydbtracedir;traceFileAppend=true
トレースのレベル | 16進数 | 10進数 |
org.apache.derby.jdbc.ClientDataSource.TRACE_NONE | 0x0 | 0 |
org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTION_CALLS | 0x1 | 1 |
org.apache.derby.jdbc.ClientDataSource.TRACE_STATEMENT_CALLS | 0x2 | 2 |
org.apache.derby.jdbc.ClientDataSource.TRACE_RESULT_SET_CALLS | 0x4 | 4 |
org.apache.derby.jdbc.ClientDataSource.TRACE_DRIVER_CONFIGURATION | 0x10 | 16 |
org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS | 0x20 | 32 |
org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS | 0x40 | 64 |
org.apache.derby.jdbc.ClientDataSource.TRACE_RESULT_SET_META_DATA | 0x80 | 128 |
org.apache.derby.jdbc.ClientDataSource.TRACE_PARAMETER_META_DATA | 0x100 | 256 |
org.apache.derby.jdbc.ClientDataSource.TRACE_DIAGNOSTICS | 0x200 | 512 |
org.apache.derby.jdbc.ClientDataSource.TRACE_XA_CALLS | 0x800 | 2048 |
org.apache.derby.jdbc.ClientDataSource.TRACE_ALL | 0xFFFFFFFF | -1 |
• | ijを使っている場合、10進数を加算した合計値を指定してください。たとえば、プロトコルのフローと接続の呼び出しをトレースする場合、TRACE_PROTOCOL_FLOWS (64)とTRACE_CONNECTION_CALLS (1)の値を加算して、合計値の65を指定します。 | |||||||
• | JDBCによるプログラムを実行する場合、以下の方法を使ってください。
|
• | JNDIのサポート この機能により、アプリケーションは、データベースの名前を登録して、データベース接続URLではなく、登録した名前によりデータベースに接続できます。JDBCインターフェイスの一つである、javax.sql.DataSourceにより、この機能は実現されています。 | |
• | コネクションプーリング リソースマネージャ((Derby)への接続を保持する機構です。
接続を要求するユーザは、プールされた接続をこの機構から受け取ることができます。
接続の確率は比較的に高価な処理となるので、クライアント/サーバの環境にてコネクションプールは有用です。組み込み環境では接続は比較的安価に手に入れることができます。したがってコネクションプールによるパフォーマンス上の利得は余りありません。
この機能はJDBCインターフェイスの、javax.sql.ConnectionPoolDataSourceとjavax.sql.PooledConnectionにより提供されます。 | |
• | XA のサポート XAは分散トランザクション管理の標準の一つです。
これは2フェーズコミットに基づくものです。javax.sql.XAxxxインターフェイスとjava.transaction.xaパッケージはXAの抽象的な実装です。
XAの詳細についてはX/Open CAE Specification-Distributed
Transaction Processing: The XA Specification, X/Open Document No. XO/CAE/91/300か、ISBN 1 872630 24 3を参照してください。
JTAのAPIは、java.transaction.xaパッケージのインターフェイス(javax.sql.XAConnection,javax.sql.XADataSource,javax.transaction.xa.XAResource,javax.transaction.xa.Xid, and javax.transaction.xa.XAException)から構成されて、この機能を提供します。 |
• | setCreateDatabase(String create) 次回の接続でデータベースを作成する属性を設定します。引数の文字列は"create"でなければなりません。 | |
• | setShutdownDatabase(String shutdown) データベースを終了する属性を設定します。データベースは次回の接続で終了します。引数の文字列は"shutdown"でなければなりません。 |
• | org.apache.derby.tools.ij SQLスクリプトのためのツールです。組み込みあるいはクライアント/サーバのアプリケーションとして実行することができます。詳細はDerby ツールとユーティリティーガイドを参照してください。 | |
• | org.apache.derby.tools.sysinfo サーバサイドで使うコマンドラインのユーティリティで、JVMとDerbyの情報を表示します。
Derby ツールとユーティリティーガイドを参照してください。 | |
• | org.apache.derby.tools.dblook データベースの全てあるいは一部を定義するDDLを表示します。詳細はDerby ツールとユーティリティーガイドを参照してください。 |
• | org.apache.derby.jdbc.EmbeddedDataSource and org.apache.derby.jdbc.EmbeddedDataSource40 | |
• | org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource and org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource40 | |
• | org.apache.derby.jdbc.EmbeddedXADataSource and org.apache.derby.jdbc.EmbeddedXADataSource40 |
• | org.apache.derby.jdbc.ClientDataSource and org.apache.derby.jdbc.ClientDataSource40 | |
• | org.apache.derby.jdbc.ClientConnectionPoolDataSource and org.apache.derby.jdbc.ClientConnectionPoolDataSource40 | |
• | org.apache.derby.jdbc.ClientXADataSource and org.apache.derby.jdbc.ClientXADataSource40 |
値 | 制限 |
表の最大列数 | 1,012 |
ビューの最大列数 | 5,000 |
手続き引数の最大数 | 90 |
表の最大索引数 | 32,767 あるいは記憶領域の上限 |
SQL文あるいはビューから参照できる表の最大数 | 記憶領域の上限 |
選択項目の最大数 | 1,012 |
WHERE節、HAVING節の述部の最大数 | 記憶領域の上限 |
GROUP BY節中の列の最大数 | 32,677 |
ORDER BY節中の列の最大数 | 1,012 |
準備済み文の最大数 | 記憶領域の上限 |
プログラムにて定義可能なカーソルの最大数 | 記憶領域の上限 |
同時に開くことができるカーソルの最大数 | 記憶領域の上限 |
表に定義できる制約の最大数 | 記憶領域の上限 |
入れ子にできる副問い合わせの深さの上限 | 記憶領域の上限 |
文中の副問い合わせ数の上限 | 記憶領域の上限 |
作業単位で変更できる行数の上限 | 記憶領域の上限 |
文中の制約数の上限 | 記憶領域の上限 |
トリガの連鎖数の上限 | 16 |
識別子 | 最大の文字数 |
制約名 | 128 |
相関名 | 128 |
カーソル名 | 128 |
データソースの列名 | 128 |
データソースの索引名 | 128 |
データソースの名前 | 128 |
セーブポイントの名前 | 128 |
スキーマ名 | 128 |
限定されていない列名 | 128 |
限定されていない関数名 | 128 |
限定されていない索引名 | 128 |
限定されていない手続き名 | 128 |
パラメータ名 | 128 |
限定されていないトリガ名 | 128 |
限定されていない表名、ビュー名と手続き名 | 128 |
値 | 制限 |
INTEGERの最小値 | -2,147,483,648 |
INTEGERの最大値 | 2,147,483,647 |
BIGINTの最小値 | -9,223,372,036,854,775,808 |
BIGINTの最大値 | 9,223,372,036,854,775,807 |
SMALLINTの最小値 | -32,768 |
SMALLINTの最大値 | 32,767 |
decimalの精度の最大値 | 31 |
DOUBLEの最小値 | -1.79769E+308 |
DOUBLEの最大値 | 1.79769E+308 |
正のDOUBLEの最小値 | 2.225E-307 |
負のDOUBLEの最大値 | -2.225E-307 |
REALの最小値 | -3.402E+38 |
REALの最大値 | 3.402E+38 |
正のREALの最小値 | 1.175E-37 |
負のREALの最大値 | -1.175E-37 |