无法使用java更新oracle数据库中的数据

发布于 2024-12-22 00:43:02 字数 480 浏览 3 评论 0原文

我正在尝试使用此代码更新我的 Oracle 数据库中的数据。 程序没有错误,但显示ORA-00933:SQL命令未正确结束
谁能告诉我这是什么意思以及我该如何纠正它?

String gdta="
  UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 68100 BATU CAVES SELANGOR D.E. 
UNION 
  UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 47100 PUCHONG,SELANGORUNION 
  UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR'
    WHERE CLIENT_ADDRESS4 = 47100 PUCHONG";

I'm trying to update the data from my oracle database using this code.
The program has no error but it display ORA-00933: SQL command not properly ended.
Can anyone let me know what does it mean and how can I correct it?

String gdta="
  UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 68100 BATU CAVES SELANGOR D.E. 
UNION 
  UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' 
    WHERE CLIENT_ADDRESS4 = 47100 PUCHONG,SELANGORUNION 
  UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR'
    WHERE CLIENT_ADDRESS4 = 47100 PUCHONG";

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铃予 2024-12-29 00:43:02

您不能将 update 语句合并到 union 语句中。另外,您似乎需要引用 client_address4 值。

在 Java 中尝试之前,先尝试在 SQL 客户端中运行 SQL 命令,看看它是否有效。

我认为您需要执行多个语句,而不是单个语句,如下所示:

String gdta="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '68100 BATU CAVES SELANGOR D.E.'";
String gdta2="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '47100 PUCHONG,SELANGOR'";
String gdta3="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '47100 PUCHONG'";

或者,使用带有子句的单个语句:

String gdta="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 in ('68100 BATU CAVES SELANGOR D.E.', '47100 PUCHONG,SELANGOR', '47100 PUCHONG')";

You can't combine update statements in a union statement. Also it looks like you need to quote the client_address4 values.

Try running your SQL command in a SQL client before trying it in java and see if it works.

I think you need to execute multiple statements, instead of a single one, like this:

String gdta="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '68100 BATU CAVES SELANGOR D.E.'";
String gdta2="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '47100 PUCHONG,SELANGOR'";
String gdta3="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 = '47100 PUCHONG'";

or, use a single statement with an in-clause:

String gdta="UPDATE CLIENT_DATA SET CLIENT_ADDRESS4 = 'SELANGOR' WHERE CLIENT_ADDRESS4 in ('68100 BATU CAVES SELANGOR D.E.', '47100 PUCHONG,SELANGOR', '47100 PUCHONG')";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文