dポイントプレゼントキャンペーン実施中!

現在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);

よろしくお願いします。

A 回答 (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);

以上宜しくお願い致します。
    • good
    • 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はこれでいいと思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A