我的表名称:KEY_PARAMETER 它由两个名为 SET_NO 的字段组成。和 MES_VAL SET_NO。已修复,不会改变,但我的 MES_VAL 文件每分钟都会发生变化。
我的目的是更新此 MES_VAL 字段而不删除其旧值。
SQL> desc key_parameter;
SQL> select SET_NO and MES_VAL from key_parameter;
SET_NO. MES_VAL
------ -------
2324 12.22
5555 -90.40
65467 89.98
1243 123
6754 12.67
5677 898.55
7853 11.00
9865 449.12
3244 90.33
3545 76.89
一分钟后,MES_VAL 字段将被更新。应该是这样的。
SET_NO. MES_VAL
------ -------
2324 17.67
5555 -90.5
65467 34,88
1243 88
6754 32,90
5677 227.9
7853 30.6
9865 109.3
3244 23.40
3545 132.8
在后端,Unix shell 脚本正在我的 Solaris 系统中运行。我的更新数据保存在 .txt 文件中。我尝试过使用 oracle sqlldr REPLACE 命令,但发生的情况是删除它的数据,然后将新数据填充到表中。目前,操作员无法查看任何数据,直到插入新值。
我也尝试插入命令,但发生了什么而不是更新字段,它保留了我不需要的旧数据。
答案1
下面的代码有效。
cat /tmp/spec2PC_sc.txt | sed -e 's/[insert]*/insert into key_parameter (SET_NO,MES_VAL) values (/' | sed 's/.*/&);/' >> /tmp/spec2PC1.txt