A5:SQL Mk-2

開発のこと、日々のこと

ORA-00904でデータタブにデータが表示されない

ホーム フォーラム A5:SQL Mk-2掲示板 ORA-00904でデータタブにデータが表示されない

  • このトピックには7件の返信、2人の参加者があり、最後に上村により5年前に更新されました。
8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #4005 返信
    上村
    ゲスト

    松原様

    はじめまして。
    上村と申します。

    A5:SQL Mk-2 非常に便利で助かっています。
    ありがとうございます。

    手元の環境にて次の状態となっています。
    お手すきの時に対応方法などアドバイスいただけると幸いです。

    ・状態
    DOCTBLというテーブルがありこれを開こうとすると「ORA-00904: “DOCCODE”: 無効な識別子です。」と表示されデータタブにデータが表示されません。

    この DOCCODE は DOCTBL に以前あった列で現在は存在しません。

    その他のタブは問題なく最新の状態が表示されます。

    ・試みたこと
    スキーマを再読込
    データベース情報の再読込
    データベースを一旦削除→追加(データベース名は同じものを使用)

    ・原因と思われること
    DOCTBLを開いたままDOCTBLテーブルのdrop->create(この時DOCCODE列の削除)を行った。

    ・環境
    A5:SQL Mk-2 2.13.3 x64 ポータブルモード
    Oracle Server 11g r2
    接続方法 直接

    #4047 返信
    松原正和
    キーマスター

    上村さんこんにちは。
     
    ちょっと不思議な現象ですね。例えば、
     
    select * from ALL_TAB_COLUMNS where OWNER=’スキーマ名’ and TABLE_NAME=’DOCTBL’
    — ※スキーマ名は該当スキーマ名で置き換えてください

     
    はどのようになりますでしょうか?。
    あるいは、ER図を作成して割り当てを行っていたりしますでしょうか?。(ER図上のDOCTBLにDOCCODEが残っていたり?)
     
    以上よろしくお願いいたします。

    • この返信は5年前に松原正和が編集しました。
    • この返信は5年前に松原正和が編集しました。
    • この返信は5年前に松原正和が編集しました。
    • この返信は5年前に松原正和が編集しました。
    #4066 返信
    上村
    ゲスト

    松原様

    対応ありがとうございます。

    ALL_TAB_COLUMNSの実行結果にDOCCODE列は無く最新の状態でした。
    また、ER図は使用(作成)していません。

    テーブル一覧(左ペイン)からDOCTBLをダブルクリックした時のSQL Traceを見ると
    ORA-00904 の前に下のSQLが発行されている様です。

    The following statement encountered a error during parse:

    SELECT /*+FIRST_ROWS(10000) */ TNTHIS.DOCTBL.rowid, TNTHIS.DOCTBL.* FROM TNTHIS.DOCTBL ORDER BY “DOCCODE”

    Error encountered: ORA-00904

    記憶が定かではありませんがこの現象が出だす前に「ソート条件」でDOCCODEを指定した気もしますが関係あるでしょうか。

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

    #4090 返信
    松原正和
    キーマスター

    上村さんこんにちは。
     
    主キー項目としてDOCCODEが出てくるのですね。主キー項目は内部では以下のようなSQLで取得しています。
     
    select
    CC.COLUMN_NAME
    from
    ALL_CONSTRAINTS C
    , ALL_CONS_COLUMNS CC
    where
    CC.OWNER = C.OWNER
    and CC.TABLE_NAME=C.TABLE_NAME
    and CC.CONSTRAINT_NAME = C.CONSTRAINT_NAME
    and C.OWNER = ‘スキーマ名’
    and C.TABLE_NAME = ‘テーブル名’
    and C.CONSTRAINT_TYPE=’P’
    order by
    CC.POSITION
     
    これでクエリー結果にDOCCODEが出てくるなら、何らかの原因で、Oracleが管理する主キーの情報に古く存在しない列の情報が残ってしまったのかもしれないですね。一度、DROP TABLE & CREATE TABLEしなおす必要があるかもしれないです。

    #4104 返信
    上村
    ゲスト

    松原様
    こんにちは。

    SQLの実効結果は下の通りで DEN_CD は現在の主キーです。

    COLUMN_NAME
    ———–
    DEN_CD

    実際に使用したSQLは下になります。

    よろしくお願いします。

    #4119 返信
    松原正和
    キーマスター

    上村さんこんにちは。
     
    ご報告ありがとうございました。どうも調査したところ、テーブルエディタを開く際に、前回テーブルエディタを開いたときのソートキーを記憶しているロジックが悪さをしていたようです。
     
    この週末に修正版を出したいと思いますので少々お待ちください。

    #4130 返信
    上村
    ゲスト

    松原様
    こんにちは。

    承知しました。

    お忙しいとは思いますがよろしくお願いいたします。

    #4131 返信
    上村
    ゲスト

    松原様
    こんにちは。

    version 2.14.1 beta 3 でテーブルエディタが開くことを確認いたしました。

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

8件の投稿を表示中 - 1 - 8件目 (全8件中)
返信先: ORA-00904でデータタブにデータが表示されないで#4090に返信
あなたの情報:




コメントは受け付けていません。