0

AllowedFields次の列を持つデータベーステーブルがあります。

ID int
Name Varchar(50)
FieldRecord Decimal(7,2)

次のクエリを使用してデモ レコードを挿入しようとしています。

set term ^ ;
EXECUTE BLOCK AS BEGIN
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ("A", 0.00);
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ("E", 13.00);
END^

しかし、次のエラー メッセージが表示されます。

Engine Code    : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -206
Column unknown
A
At line 3, column 37

明らかに火の鳥はこのA値を列の値と見なしますか?

このスクリプトを変更してレコードを挿入するにはどうすればよいですか。ありがとう。

4

1 に答える 1

1

SQL 標準では、識別子 (テーブル名、列名、制約名など) を示す二重引用符が定義されています。したがって、単一の文字ではなく、"A"名前付きの列を識別します。A

文字列リテラルは、SQL では一重引用符で囲む必要があります。'A'したがって、文字列 (文字) リテラルを表すために使用する必要があります。

これをまとめると、次のものが必要になります。

INSERT INTO AllowedFields(Name, FieldRecord) VALUES ('A', 0.00);
INSERT INTO AllowedFields(Name, FieldRecord) VALUES ('E', 13.00);

"A"また、標準では、引用符で囲まれた名前は大文字と小文字を区別する必要があるため、 とは異なる列であることに注意してください"a")。

そしてFirebirdは標準に従います。

于 2013-06-25T19:38:05.253 に答える