問題タブ [ora-12899]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4924 参照

oracle10g - Oracle 10gr2 Express Edition のデフォルトの文字セットを変更する方法

ラップトップに oracle 10gr2 Express Edition をインストールしました。Oracle 10gr2 Enterprise Edition で生成された .dmp ファイルをインポートすると、エラーが発生します。

.dmp ファイルを生成したデータベース サーバーは GBK文字セットで実行されていますが、私の oracle Express サーバーはUTF-8で実行されています。

独自の Oracle サーバーを構成して .dmp ファイルをインポートするにはどうすればよいですか?

編集 - - - - - - - - - - - - - - - - - - - - - - - - - -- 自分の oracle Express サーバー:

0 投票する
1 に答える
3835 参照

oracle - ORA-12899、実際の値の長さが最大値よりも小さい

SQL*Loader を使用していくつかのデータをロードしたところ、次の奇妙なエラー メッセージが表示されました。

ORA-12899: 列AELS_AENDBESCHRの値が大きすぎます(実際: 69、最大: 70)

ORA-12899: 列AELS_AENDBESCHRの値が大きすぎます(実際: 70、最大: 70)

実際には値が最大値を超えていないのに、これらのメッセージがここで何をしているのか?

0 投票する
0 に答える
132 参照

sql - Oracle SQL INSERT: Oracle 例外をトリガーする値を報告できますか?

初めての PL/SQL スクリプトを作成しています。

私が書いているバッチ処理スクリプトでは、テーブル A の「コメント」フィールドから、さまざまな整合性制約を持つテーブル B の列にデータを挿入しています(したがって、ORA-12899 に関する懸念 - 値が長すぎる、または ORA -02291 - 値は許可されていません) .

テーブル B に値を挿入しようとして例外が発生した場合、標準出力を使用して、挿入をスキップする必要があることだけでなく、テーブル A のどの内容が挿入をスキップしたかを報告したいと考えています。

テーブル A のデータを手続き的にループし、本質的に一度に 1 つの INSERT を呼び出して、その呼び出しに対して例外を発生させたデータの値を報告できることを認識しています。しかし、可能であれば、「SQL に仕事を任せる」という原則に固執したいと思います。

ストレート SQL の"INSERT INTO {Table B} SELECT FROM {Table A}"で例外が発生したときに、 Table A のデータを表示する方法はありますか?

注: 私はデータベースに対する DDL 権限を持っておらず、何も取得できないことを知っています。INSERT/UPDATE/SELECT のような DML とクエリしかありません。残念ながら、「ログテーブルを作成する」などの解決策は問題外です。

更新: 私の質問の 2 番目の部分: Question 1065829を読んで、無効な挿入をスキップして有効な挿入を続行することさえ、ストレート SQL と DDL アクセスなしでは不可能であると考え始めています (これは、上記の質問を書く前に可能です)。テーブル A の行を反復処理するか、一度に 1 つの INSERT 呼び出しを実行するか、特別な DDL 権限を要求するかを選択する必要があるようです。 これは正しいです?

ありがとうございました!

0 投票する
2 に答える
58 参照

oracle - ORA-12899 エラー: 同じ列の文字列が大きすぎますが、異なるテーブルには成功しました

文字列を長さ35の列に2つのテーブルに更新しています

最初のテーブルの更新は成功しましたが、2 番目のテーブルで ORA エラー ORA-12899 エラーが発生しました 文字列が大きすぎます

両方のテーブルの colm1 フィールドが VARCHAR(35) として宣言されています。最初のテーブルの更新は失敗し、2 番目のテーブルは成功します。

ORA-12899

同じ列タイプを持つこれらのテーブルのこの動作の理由を教えてください