• ベストアンサー

DB2 create tableコマンドでエラーになる

現在redhat9にdb2 v8を導入しています。 そこでテーブルを作成したいのですが、エラーとなりうまくいきません。 どこを修正すればテーブルが作成できるのか教えてください。 また、テーブル作成後に値を入れたいのですが、insertについてのコマンドのアドバイスもお願いします。 CREATE TABLE emp (empno INTEGER ,ename CHAR2(10) ,mgp INTEGER,sal NUMERIC(5,2) ,deptn INTEGER); INSERT INTO EMP VALUES(221000,'TAYLOR',220000,880.60,220000); よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

CREATE文を拝見した所、「ename」の列のデータ型が間違っています。 CHAR(10)かVARCHAR(10)になります。 CHARとVARCHARの違いが分からないようでしたら再度質問していただけると助かります。 おそらくOracleのVARCHAR型とVARCHAR2型が存在しているというところで混乱されているかと存しますが。。 INSERT文については特に問題はなのですが出来れば以下のように記述するとよろしいかと思います。 INSERT INTO EMPempno,ename,mgp,sal,deptn) VALUES(221000,'TAYLOR',220000,880.60,220000); 以上宜しくお願い致します。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yukion
  • ベストアンサー率42% (3/7)
回答No.1

CHAR2が明らかにに間違いです。固定長文字列はCHARまたはCHARACTERですね。 十進数はNUMERICでもいいですが、DECIMALでも同じです。 こういう質問の場合はエラー時にでるメッセージを一緒に書いてください。それがないともっと分かりにくいエラーでは調べようがありませんから。 ちなみにマニュアルにあるEMPのサンプルは次のようになっていますね。CHECK制約とかが入っていてちょっと複雑になっていますが参考にしてください: CREATE TABLE EMPLOYEE (ID SMALLINT NOT NULL, NAME VARCHAR(9), DEPT SMALLINT CHECK (DEPT BETWEEN 10 AND 100), JOB CHAR(5) CHECK (JOB IN (’Sales’,’Mgr’,’Clerk’)), HIREDATE DATE, SALARY DECIMAL(7,2), COMM DECIMAL(7,2), PRIMARY KEY (ID), CONSTRAINT YEARSAL CHECK (YEAR(HIREDATE) > 1986 OR SALARY > 40500) ) IN HUMRES INSERTはこれでいいと思います。

すると、全ての回答が全文表示されます。