0

Oracle SQL Developerで他の2つのテーブルからテーブルを作成しようとしています:

CREATE TABLE share_stock(
  share_id    NUMBER(6,0), 
  share_price NUMBER(10,2),
  company_id  NUMBER(6,0), 
  company_name VARCHAR2(50), 
  ticker_symbol VARCHAR2(4),
AS SELECT share_price.share_price_id, share_price.price, share_price.company_id, company.name, company.ticker_symbol 
FROM share_price, company
WHERE share_price.company_id = company.company_id,
CONSTRAINT sh_pk PRIMARY KEY (share_price.share_price_id),
CONSTRAINT sh_pr_fk FOREIGN KEY (share_price.share_price_id) REFERENCES share_price(share_price_id)
);

基本的に、CREATE AS SELECT を実行しようとしていますが、次のエラーが発生しています。

コマンド ラインのエラー:294 列:28 エラー レポート: SQL エラー: ORA-00904: : 無効な識別子 00904。00000 - "%s: 無効な識別子"

私は自分の構文を修正しようとしましたが、これまでのところ正しくすることができませんでした.どんなアイデアでも役に立ちます.

前もって感謝します。

4

2 に答える 2

4

この方法を試してください:

CREATE TABLE share_stock
AS 
SELECT SP.share_price_id as share_id , 
       SP.price as share_price, SP.company_id, C.name, 
       C.ticker_symbol 
FROM share_price SP 
join company C on SP.company_id = C.company_id;

alter table share_stock
add CONSTRAINT sh_pk PRIMARY KEY (share_id);

alter table share_stock
add CONSTRAINT sh_pr_fk FOREIGN KEY (share_id) 
REFERENCES share_price(share_price_id);
于 2013-01-17T14:19:06.317 に答える
0

CONSTRAINT sh_pk PRIMARY KEY ( share_price.share_price_id ), CONSTRAINT sh_pr_fk FOREIGN KEY (**share_price.**share_price_id) REFERENCES share_price(share_price_id) );

ORACLE が share_price.shareprice_id を認識していないため、コードが機能しません。share_id と書く必要があります。これは、テーブル share_stock の主キーにする列です。

よろしく、MJ。

于 2013-10-12T09:36:39.090 に答える