エラー ora-01722: 無効な番号が発生しました。to_char、キャスト関数を試しましたが、何も役に立ちません。PERSON_DOCS と PERSON_DOCS_NEW はビューであり、フィールド DOCTYPENAME はビュー内の副選択を使用して計算され、タイプは varchar2(70) であり、両方のビューのすべての行で null です。
select count(1) from
(select DOCTYPENAME
from PERSON_DOCS
minus
select DOCTYPENAME
from PERSON_DOCS_NEW)
現時点でのビューは同じです。
CREATE OR REPLACE VIEW PERSON_DOCS AS
select
...,
(select lr.ll_remark
from table1 ln,
table2 lv,
table3 lr
where ln.short_name = 'DOC.TYPE'
and ln.table_no = lv.table_no
and lv.table_no = lr.table_no
and lv.vetting_table = c.doc_type) as DOCTYPENAME,
...
from table0 c
ビュー内のサブセレクトで to_char 関数をキャストしようとしましたが、役に立ちません。
表 3 の DDL ステートメント。値の由来は次のとおりです。
CREATE TABLE table3
(TABLE_NO VARCHAR2(35 BYTE),
LL_REMARK VARCHAR2(70 BYTE)
) ;
CREATE TABLE table1
(TABLE_NO VARCHAR2(35 BYTE),
SHORT_NAME VARCHAR2(15 BYTE)
);
CREATE TABLE table2
(TABLE_NO VARCHAR2(35 BYTE),
VETTING_TABLE VARCHAR2(35 BYTE),
APPLICATION VARCHAR2(40 BYTE)
);
CREATE TABLE table0
(CUSTOMER_CODE VARCHAR2(10 BYTE),
DOC_TYPE NUMBER
);