我试图通过使用连接更新oracle SQL开发人员中的记录.以下是我的查询 -
UPDATE system_info set field_value = 'NewValue'
FROM system_users users
JOIN system_info info ON users.role_type = info.field_desc
where users.user_name = 'uname'
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试执行它时,我得到以下错误 -
Error report: SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
Run Code Online (Sandbox Code Playgroud)
我试着删除JOINS
UPDATE system_info info
SET info.field_value = 'NewValue'
FROM system_users users
where users.user_name = 'uname' AND users.role_type = info.field_desc
Run Code Online (Sandbox Code Playgroud)
但是仍然有相同的错误,任何人都可以告诉我错误的原因和解决方案
小智 29
;命令结束时的分号对我造成了同样的错误.
cmd.CommandText = "INSERT INTO U_USERS_TABLE (USERNAME, PASSWORD, FIRSTNAME, LASTNAME) VALUES ("
+ "'" + txtUsername.Text + "',"
+ "'" + txtPassword.Text + "',"
+ "'" + txtFirstname.Text + "',"
+ "'" + txtLastname.Text + "');"; <== Semicolon in "" is the cause.
Removing it will be fine.
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
a_h*_*ame 15
Oracle不允许在UPDATE语句中连接表.您需要使用共同相关的子选择重写您的语句
像这样的东西:
UPDATE system_info
SET field_value = 'NewValue'
WHERE field_desc IN (SELECT role_type
FROM system_users
WHERE user_name = 'uname')
Run Code Online (Sandbox Code Playgroud)
有关UPDATE语句的(有效)语法的完整说明,请阅读手册:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10008.htm#i2067715
| 归档时间: |
|
| 查看次数: |
230904 次 |
| 最近记录: |