アプリケーション設定の保存に使用するこのOracleテーブルがあります。SQL - 2つの行テーブルを1つのSQL文で更新する方法
これは、テーブルを作成するために使用されますことをSQLスクリプトです:
CREATE TABLE "GLOBALSETTINGS"(
"SettingName" Varchar2(40) NOT NULL,
"SettingValue" Varchar2(40)
)
/
-- Add keys for table GLOBALSETTINGS
ALTER TABLE "GLOBALSETTINGS" ADD CONSTRAINT "Key14" PRIMARY KEY ("SettingName")
/
ALTER TABLE "GLOBALSETTINGS" ADD CONSTRAINT "SettingName" UNIQUE ("SettingName")
/
は、これは私が使用するSQL文です:
UPDATE GLOBALSETTINGS
SET settingValue =
CASE
WHEN settingName = 'SessionTTL'
THEN '30'
WHEN settingName = 'MaxUsersActive'
THEN '40'
ELSE settingValue
END
WHERE settingName IN ('SessionTTL', 'MaxUsersActive');
しかし、ときに私SQL Developerで実行してください。このエラーメッセージが表示されます。
Error starting at line 1 in command:
UPDATE GLOBALSETTINGS
SET settingValue = case
when settingName = 'SessionTTL' then '30'
when settingName = 'MaxUsersActive' then '40'
else settingValue
end
WHERE settingName in ('SessionTTL', 'MaxUsersActive')
Error at Command Line:7 Column:6
Error report:
SQL Error: ORA-00904: "SETTINGNAME": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
どうすれば問題を解決できますか?
あなたは、彼らが今、大文字と小文字が区別され、二重引用符を使用して、テーブルの列を作成したとしてベスト ピーター
エラーメッセージを理解できないため、あなたの質問は完全に間違っています。プログラムまたは構文の質問としてフレームに入れますが、メッセージにはINVALID IDENTIFIERが明示されています。これは、二重引用符で囲まれた大文字と小文字の区別なく使用されるためです。詳細については、この質問をご覧ください:http://stackoverflow.com/questions/6027961/ora-00904-invalid-identifier/6030439#6030439 – APC