DBエラー(Ora-960)
皆さん、こんにちはカズヤです。
今日は、Oracleデータベースに関するエラーを扱いましたので共有したいと思います。
Ora-960エラーなのですが、
下記サイトを調べてみると、
「選択リストに未確定の列名があります。」と記されており、
原因: ORDER BY句で指定している列名が、選択リストの複数の列と一致しています。
処置: 重複する列名を選択リストから削除してください。
とありました。
エラー・メッセージ Ora-910 - Ora-1497 - MySQL, Oracle Abc Wiki
先月まで、OracleのSQLの学習をしていたのでかろうじて理解できます。
「ORDER BY」は抽出した列を昇順に並べ替えるコマンドです。
このコマンドを利用する際には、この重複する列名の1つを削除するだけです。
試しに、以下のコマンドをSQL Plusにて試してみました。
select empno, ename, ename, job from emp order by empno, ename;
これは、
emp表からempno列、ename列、ename列を抽出し、これらを昇順で出力する
という意味なのですが、order by empnoだけなら、1つしかempno列がないので特定できるので問題ありません。
しかし、order by enameとなると、selectの後に2つ記述してしまっているのでシステムが特定できないためエラーになるということです。
これがもし、
select empno, ename, ename, job from emp;
となれば、2つのename列が出力されることになります。すごく紙一重ですが、
プログラミングは正確で繊細だと改めて気づかされます...
インフラ研修出身の自分以外の同期はSQLが読めないので勉強しといて少し褒められましたwww
今後も初歩的だけど大切なSQLエラーについて紹介できたらと思っています。
当たり前ですが、SAPのGUI上で出るエラーって、SQL Plusなら一瞬で解読できて、すごい嬉しいです。Oracle Bronzeの学習もDB2案件のせいで止まってしまっているのでまた本腰入れて勉強しようと思います。
今日も、お読みいただきありがとうございました。
また、次回も宜しくお願いします!!