Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插入然后更新SQL的查询_Sql_Oracle_Oracle11g - Fatal编程技术网

插入然后更新SQL的查询

插入然后更新SQL的查询,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,是否可以有一个insert语句,完成后立即运行update语句 truncate table table2; INSERT INTO table2 (name, value, ATY) SELECT t1.name, TRIM( BOTH '+' FROM REPLACE( '+' || t1.value || '+', '++', '+000+' ) ), t1.ATY FROM table1 t1; 以下是我的声明: 插入 tr

是否可以有一个insert语句,完成后立即运行update语句

truncate table table2;

INSERT INTO table2 (name, value, ATY)
    SELECT t1.name,
           TRIM( BOTH '+' FROM REPLACE( '+' || t1.value || '+', '++', '+000+' ) ),
           t1.ATY
    FROM table1 t1;
以下是我的声明:

插入

truncate table table1;
INSERT INTO table2 (name,value, ATY)
SELECT table1.name,table1.Value,table1.ATY
FROM table1;
完成后,我需要运行以下更新:

更新

update table2
   SET value=TRIM( BOTH '+' FROM REPLACE( '+' || value || '+', '++', '+000+' ) )

这可能吗?

为什么不在一个语句中同时执行这两个操作

truncate table table2;

INSERT INTO table2 (name, value, ATY)
    SELECT t1.name,
           TRIM( BOTH '+' FROM REPLACE( '+' || t1.value || '+', '++', '+000+' ) ),
           t1.ATY
    FROM table1 t1;

注意:我假设您打算截断
表2
,而不是
表1
。如果截断
table1
,则
insert
将不会执行任何操作,因为该表将为空。

insert INTO table2(名称、值、ATY)选择table1.name,TRIM(替换中的两个“+”(“+”| | table1.value |“+”、“++”、“+000+”)),table1.ATY来自table1@jarlh。。谢谢是的正确应该是表2被截断了。我最初尝试过这个,但由于某种原因出现了一个约束错误。但是你的答案是有效的谢谢