oracle - 通过从另一个中选择全部插入到表中,当语句为真时更改 PL/SQL 中的值
问题描述
所以我想做的是把一个表的值(全部)插入一个新的表中,当它遇到任何值时,文章标识符(sa.art_ident)用单词 bighead 和 sa.art_moddate 替换它替换为当前系统时间。当我尝试运行它时,它会告诉我缺少右括号...请帮助
PROCEDURE p_copier_one IS
BEGIN
INSERT INTO article_new
(
SELECT * FROM article_old sa
CASE
WHEN sa.art_ident='%' THEN
sa.art_ident = 'Bighead'
END
CASE
WHEN sa.art_moddate='%' THEN
sa.art_moddate = to_date(
'02/04/2012'
,'DD/MM/YYYY')
,trunc(SYSDATE)
END
);
END p_copier_one;
解决方案
欢迎来到 SO。您需要执行如下所示的操作。内联阅读我的评论。
CREATE OR REPLACE PROCEDURE p_copier_one
IS
BEGIN
---List down all your columns here. Although its option to mention your table column but its good practise.
INSERT INTO article_new (
col1,
col2,
col3,
col4,
col5
)
SELECT col1,
col2,
--Put your case here
CASE
WHEN sa.art_ident = '%' THEN 'Bighead'
END col3,
CASE
WHEN sa.art_moddate = '%' THEN TO_DATE('02/04/2012','DD/MM/YYYY')
END col4,
trunc(SYSDATE) col5
FROM article_old sa;
COMMIT;
END;
推荐阅读
- javascript - 如何在 CSS 中构建否定属性选择器?
- oracle - Oracle中如何提交多条SQL语句?
- binary - What type of instruction set is this?
- java - Wait until element is disabled
- linux - Docker container doesn't have any internet access
- javascript - How to create a html/javascript table that automatically selects radiobuttons?
- python - 当我旋转立方体时,如何隐藏立方体的不朝前的面?
- reactjs - 如何将状态从按钮传递到另一个组件
- python - HDFStore and querying by attributes
- macos - Superfluous slash before column in npm config proxy