単純なテーブルを考えてみましょうproducts
オラクル(私はOracle 9iを試してみました)。私はこのテーブルを次のCREATE文で作成しています。OracleでCREATEコマンドを使用して二重引用符内の列名を囲むことは正しく機能しません。どうして?
CREATE TABLE products
("prod_id" varchar2(7) primary key, "product_name" varchar2(30) NOT NULL);
それはない通常我々がそうであるように、私は二重引用符""
内の列名を囲んだことに特別に注意すべきです。明らかに機能し、products
テーブルは、指定されたCONSTRAINTSを持つ2つのカラムで作成されます。
次に、次のINSERT INTOコマンドを使用してこのテーブルにいくつかの行を挿入します。
INSERT INTO products VALUES('P0001', 'Nokia-N97');
INSERT INTO products VALUES('P0002', 'Nokia-1208');
INSERT INTO products VALUES('P0003', 'Nokia-1115');
products
テーブルに3つの行を挿入しますか。
これらの行が実際に挿入されているかどうかを確認するために、次のようにSELECT文を発行できます。
SELECT * FROM products;
私たちが挿入した3行をうまく表示できますか。
ここでは実際の質問です。次のSELECTステートメントを発行するとき、このSQLで間違いがないのに、
SELECT prod_id, product_name FROM products;
が動作しません。 Oracleでは、そのような列は存在しないと報告します。なぜこれが起こるのですか?その背後には非常に特殊な理由があるに違いないと私は思う。
私はちょうど行ったように、二重引用符で不必要に列名を囲むことはベストプラクティスではないかもしれないことを確信しているが、ただの質問は私に起こりました。共通に対する