2017-05-22 14 views
-2

私はOracleには新しく、catagoriesのテーブルを作成しようとしています。表は、細かく作成と細かく変更される:外部テーブルから選択中にエラーが発生しました

CREATE TABLE CATAGORIES 
(Code VARCHAR2(10) NOT NULL, 
CategoryName VARCHAR2(250), 
Active VARCHAR2(1)) 
/
ALTER TABLE CATAGORIES ADD CONSTRAINT PK_CATAGORIES PRIMARY KEY(CODE) 
/

しかし、それに挿入するとき、これらのエラーが発生しました:

INSERT INTO CATAGORIES(Code,CategoryName,Active) 
select LPAD(ROWNUM,5,'0') AS Code, Category,'Y' 
from 
(
SELECT count(Product),Replace(Category,'"','') as Category from TEMPDATA_EXT 
Where Category!='Category' 
group by Category 
) 



SQL> INSERT INTO CATAGORIES(Code,CategoryName,Active) 
    2 select LPAD(ROWNUM,5,'0') AS Code, Category,'Y' 
    3 from 
    4 (
    5 SELECT count(Product),Replace(Category,'"','') as Category from TEMPDATA_EXT 
    6 Where Category!='Category' 
    7 group by Category 
    8 ) 
    9/
INSERT INTO CATAGORIES(Code,CategoryName,Active) 
* 
ERROR at line 1: 
ORA-29913: error in executing ODCIEXTTABLEOPEN callout 
ORA-29400: data cartridge error 
KUP-00554: error encountered while parsing access parameters 
KUP-01005: syntax error: found "skip": expecting one of: "column, enclosed, (, 
ltrim, lrtrim, ldrtrim, missing, notrim, optionally, rtrim, reject" 
KUP-01007: at line 3 column 4 
+0

ほとんどの人は、画像や画像へのリンクではなく、書式設定されたテキストが必要です。 – jarlh

+0

何をしようとしているのか、そのエラーを説明してください。あなたのリンクがうまくいかない(ほとんどの人が質問のリンクを好まない理由の1つ) – HoneyBadger

+0

質問を投稿する前に[ask]と[mcve]を見てください。また、[スクリーンショットを避ける](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557 #285557) – Aleksej

答えて

1

このエラーは、外部のテーブルに問題があることを示しています。

ORA-29913:ODCIEXTTABLEOPEN

だから我々はINSERT文で参照TEMPDATA_EXTを推測することができます実行中にエラーが外部表です。だから、問題はCATEGORIESテーブルではなく、あなたが選択しているテーブルにあります。

それはあるかもしれないいくつかのものがあります:

  1. OSディレクトリのパーミッションに問題またはデータベース・ディレクトリ・オブジェクトがあるかもしれません。
  2. ロードしようとしているデータファイルの内容に問題がある可能性があります。

外部テーブルは、ログファイルと不良ファイルを指定している必要があります。これらはOSディレクトリに書き込まれます。あなたの最初の行動は、それらを見ることです。 ALL_EXTERNAL_TABLES view will give you the database directoryを使用します。オペレーティングシステムディレクトリを見つけるには、the ALL_DIRECTORIES viewを参照する必要があります。

関連する問題