可能重复:
Oracle:如何UPSERT(更新或插入表?)
嗨,
我有一个表,如果记录已经存在,则必须修改该记录,否则必须插入新记录.Oracle sql不接受IF EXISTS,否则我会做一个if - update - else - insert查询.我看过MERGE但它只适用于多个表.我该怎么办?
基本上,我正在查询数据库,我需要将结果数组转换为哈希值.
我按如下方式查询数据库
my $sth = $dbw->prepare($sql);
while (@rows = $sth->fetchrow_array()) {
...
...
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要创建一个散列,使得rows [0]是键,行[1],行[2],行[3]是值.对于每个读取的记录,必须生成新的散列键并设置相应的值
如果我的表看起来像
abc 2.3 2.4 2.5
def 3.2 3.3 3.4
ijk 4.5 4.6 4.7
Run Code Online (Sandbox Code Playgroud)
读取第一条记录,abc是键,数字是值...等等
我有一个看起来像的时间戳25-OCT-10 04.11.00.000000 AM.我正在尝试将其转换为时间格式
Time::Piece->strptime("25-OCT-10 04.11.00.000000 AM","%d-%b-%y %I.%M.%S.%6N %p")
Run Code Online (Sandbox Code Playgroud)
但它一直在抛出错误.我试过%OS,%SZ.他们似乎没有工作.有人能告诉我我做错了什么吗?