在 oracle 中更新多行

发布于 2024-10-17 19:09:54 字数 361 浏览 4 评论 0原文

我想通过使用硬编码值来更新表值。这是我的代码:

BEGIN

  UPDATE emp_table  
     SET expiry_dt = TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),
   WHERE emp_id = '78629160';

  UPDATE emp_table  
     SET expiry_dt = TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),
   WHERE emp_id = '78629160';

END

我想在单个更新语句中执行此操作。谁能告诉我解决方案吗?

I want to update the table values by using hard coded values.here is my code :

BEGIN

  UPDATE emp_table  
     SET expiry_dt = TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),
   WHERE emp_id = '78629160';

  UPDATE emp_table  
     SET expiry_dt = TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),
   WHERE emp_id = '78629160';

END

I want to do it in the single update statement. Can anyone tell me the solution?

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

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

发布评论

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

评论(3

十年不长 2024-10-24 19:09:54
   UPDATE emp_table  SET expiry_dt = TO_DATE 
   ('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),
    WHERE emp_id IN ('78629160','111020102','88888888');

应该做你。使用不同的员工 ID 编辑 IN 子句,因为您的 ID 是相同的。

   UPDATE emp_table  SET expiry_dt = TO_DATE 
   ('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),
    WHERE emp_id IN ('78629160','111020102','88888888');

Should do you. Edited the IN clause with various employee id's as yours were identical.

贱贱哒 2024-10-24 19:09:54
 UPDATE emp_table  
   SET expiry_dt = 
     CASE 
       WHEN emp_id = '78629160' THEN TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS')
       WHEN emp_id = '78629161' THEN TO_DATE('21.10.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS')
     END
 WHERE emp_id IN ('78629160', '78629161')

我认为您两次拥有相同 ID 的事实只是复制和粘贴错误,就像两个日期相同的事实一样。

顺便说一句:emp_id 是什么数据类型?如果这是数字类型,请去掉文字的单引号(数字文字不应加引号)。它们将阻止在该列上使用索引!

 UPDATE emp_table  
   SET expiry_dt = 
     CASE 
       WHEN emp_id = '78629160' THEN TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS')
       WHEN emp_id = '78629161' THEN TO_DATE('21.10.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS')
     END
 WHERE emp_id IN ('78629160', '78629161')

I assume the fact that you have the same ID twice was just a copy and paste error, just like the fact that both dates are identical.

Btw: what data type is emp_id? If that is a numeric type, get rid of the single quotes for the literals (numeric literals should not be quoted). They will prevent the usage of an index on that column!

腻橙味 2024-10-24 19:09:54

开始 UPDATE emp_table SET expiry_dt = TO_DATE ('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),-- 为什么你在这里使用 ',' ?
WHERE emp_id = '78629160';

开始
UPDATE emp_table SET expiry_dt = TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS')
WHERE emp_id = '78629160';
结尾;

它在我的机器上运行,没有任何错误和问题..并且也给出了预期的结果..
请再试一次,不要使用“,”。

Begin UPDATE emp_table SET expiry_dt = TO_DATE ('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS'),-- why you are using ',' here??
WHERE emp_id = '78629160';

Begin
UPDATE emp_table SET expiry_dt = TO_DATE('21.09.2009:00:00:01','DD.MM.YYYY:HH24:MI:SS')
WHERE emp_id = '78629160';
end;

It is running in my machine whithout any error and problem.. adn giving expected result also..
try once again without using that ','.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文