I am trying to update a record in oracle SQL developer by using Joins. Following is my query-
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'   However, when I tried to execute it, I got following error-
Error report: SQL Error: ORA-00933: SQL command not properly ended                00933. 00000 - "SQL command not properly ended"   I tried removing 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   but still having same error can anybody tell me the error reason and solution
Semicolon ; on the end of command had caused the same error on me. 
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.   Hope it helps.
Oracle does not allow joining tables in an UPDATE statement. You need to rewrite your statement with a co-related sub-select
Something like this:
UPDATE system_info SET field_value = 'NewValue'  WHERE field_desc IN (SELECT role_type                       FROM system_users                       WHERE user_name = 'uname')   For a complete description on the (valid) syntax of the UPDATE statement, please read the manual:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10008.htm#i2067715
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With