質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Q&A

3回答

1445閲覧

oracleのテーブル作成方法を理解したいです。

nununu1234

総合スコア0

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

0グッド

0クリップ

投稿2023/03/18 08:48

イメージ説明

イメージ説明

●やっていること:oracle DB

●実現させたいこと:写真の表のようにテーブルを表示させたい。

●質問の内容。
テキストの図を元にテーブルを作成中です。
下記のコードを記入したところ、「エラー、無効な識別子」と出てしまい、表が作成できない状態です。
よろしければ、エラー理由を教えていただければと思います。

●発生している問題・エラーメッセージ
)
*
行11でエラーが発生しました。:
ORA-00904: : 無効な識別子です。

●ソースコード
※ユーザ名(スキーマ):trainee
※pdb(表領域名):liense_db
※テーブル名:m_emp

SQL> create table trainee.m_emp
2 (
3 論理カラム名 varchar2(100),
4 物理カラム名 varchar2(100),
5 データ型 varchar2(100),
6 サイズ number(10),
7 PK varchar2(100),
8 FK varchar2(100),
9 参照テーブル varchar2(100),
10 NOT NULL varchar2(100)
11 );
)
*
行11でエラーが発生しました。:
ORA-00904: : 無効な識別子です。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ChatGPT 先生に聞いてみました。Oracle 環境が手元に無いので検証はしていません。あしからず・・

■ 質問内容
以下のテーブル定義に基づきテーブルを作成するSQLを教えてください。データベースは Oracle です。

テーブル定義は以下の内容です。
[テーブル定義書]
社員マスタ m_emp

論理カラム名物理カラム名データ型サイズPKFK参照テーブルNOT NULL
社員コードemp_cdchar5
部署IDpost_idintm_post
社員名(漢字)emp_name_kanjivarchar100
社員名(かな)emp_name_kanavarchar100
手当基礎額based_paidint

■ 回答内容
以下のSQLを使用して、Oracleデータベースで指定されたテーブル定義に基づいたテーブルを作成できます。

sql

1CREATE TABLE m_emp ( 2 emp_cd CHAR(5) NOT NULL, 3 post_id INT NOT NULL, 4 emp_name_kanji VARCHAR(100) NOT NULL, 5 emp_name_kana VARCHAR(100), 6 based_paid INT NOT NULL, 7 PRIMARY KEY (emp_cd), 8 FOREIGN KEY (post_id) REFERENCES m_post(post_id) 9);

このSQL文は、m_empという名前のテーブルを作成し、指定された物理カラム名、データ型、サイズ、および制約条件に従って各カラムを定義しています。また、emp_cdを主キー(PK)とし、post_idを外部キー(FK)としてm_postテーブルのpost_idカラムを参照しています。

投稿2023/03/18 09:05

cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nununu1234

2023/03/18 09:27

作成・教えていただき本当にありがとうございます。 早速、実行してみたところ、 「行8でエラーが発生しました。:ORA-00942: 表またはビューが存在しません。」 とエラーになりましたが、 「FOREIGN KEY (post_id) REFERENCES m_post(post_id)」 を削除してみたら表を作成することができました。
cx20

2023/03/18 09:33

エラーが出てしまったようで失礼しました。 質問文にあるテーブルは依存関係がある為、社員マスタテーブルを作る前に部署マスタを用意する必要があります。
nununu1234

2023/03/18 09:41

いえ、すぐ返信をいただけてとても助かります。 確認ありがとうございます。 一度作成したテーブルは削除して まずは部署マスタを作成してみます。
Orlofsky

2023/03/18 13:29

>「行8でエラーが発生しました。:ORA-00942: 表またはビューが存在しません。」 >「FOREIGN KEY (post_id) REFERENCES m_post(post_id)」 外部参照されるテーブル(親になるテーブル)を先にCREATE してください。 参考 https://qiita.com/Papageno/items/df149ba8efbb1d7693cf
nununu1234

2023/03/19 05:39

ありがとうございます。 foreign keyを使って、親テーブルを作成してから、各、子テーブルを作成していくということですね。
guest

0

作りたいものが根本的に間違っているのではないでしょうか?

今の操作では、「テーブル定義の表」そのものをDBに作ろうとしています。

投稿2023/03/18 09:05

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nununu1234

2023/03/18 09:37

教えていただきありがとうございます。 根本的に違うとなると、それぞれテーブルを作ってそれを結合させてテキストの表を作成していくという流れでしょうか?
guest

0

行11でエラーが発生しました。:
ORA-00904: : 無効な識別子です。

はCREATE TABLE文の10行目

10 NOT NULL varchar2(100)
11 );

に列名がないからエラーになっています。

CREATE TABLEの参考 をきちんと見ては?
Oracle初心者でもスッキリわかる も参考に。

投稿2023/05/11 14:53

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問