8

仮想 XP に Oracle 10g をインストールし、次を使用してテーブルを作成しました。

create table reg1 (
  fname varchar2(30),
  lname varchar2(30),
  addr varchar2(30),
  mail varchar2(30),
  occu varchar2(30),
  uname varchar2(30),
  passwd varchar2(30)
);

テーブルが正常に作成されました。しかし、次のような単純なクエリで値をフェッチしようとすると

select fname, lname 
  from reg1 
 where uname="bbb";

次のようなエラーが発生しています

ORA-00904: "bbb": 識別子が無効です

ここで何が間違っていたのか理解できません。

4

2 に答える 2

19

一重引用符を使用します。

select fname,lname from reg1 where uname='bbb';
于 2012-06-30T19:47:21.863 に答える
7

Oracle では"、大文字と小文字を区別するオブジェクト名を識別するために二重引用符を使用します。たとえば、テーブル"test"はテーブルと同じではありませんtest

文字列は一重引用符で囲む必要があります'

クエリを作成する:

select fname, lname from reg1 where uname = 'bbb';

"bbb"クエリで実際に起こっているのは、Oracle がテーブル内の列を見つけようとしているというreg1ことです。この列が存在しないため、エラーがスローされます。

于 2012-06-30T19:51:09.417 に答える