我想使用informix中另一个表中的多个列值从表中更新列值。
以下是一个例子:
select name||'\n '||address||'\n '||place, email, phone
into v_name,v_email,v_phone
from users where id=v_user_id;
update users_tab set
naziv=v_name, telefon=v_phone, email=v_email
where id=v_id;
我喜欢\ n在数据库列中写为新行字符,如下例所示:
naziv =姓名地址 不是naziv = Name \ nAddress \ nPlace
有没有办法在informix中执行此操作?
答案 0 :(得分:1)
查看ALLOW_NEWLINE配置参数,或者在相关会话中运行EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('T')
。 There's some comments on this issue in the manual
请注意,新行字符必须是文字,即
select name||'
'||address||'
'||place, email, phone
into v_name,v_email,v_phone
from users where id=v_user_id;
update users_tab set
naziv=v_name, telefon=v_phone, email=v_email
where id=v_id;
...虽然这在某种程度上取决于编程语言以及如何准备/执行SQL。
答案 1 :(得分:1)
当两个字段包含\n
和\t
时,您可以创建一个包含一次记录的表格,例如:
创建表ccr( cr char(1), tb char(1) );
然后从文本文件加载字符。 进入文件c:\ a.txt
转义字符{\
)+ [输入],转义字符(\
)+ [标签],
Potgresql
从副本中复制(从*中选择*)从" c:\ a.txt"分隔符','
csv HEADER引用'"'
的Informix: 加载来自a.txt分隔符','插入ccr
使用字符:
选择名称|| cr ||地址|| cr || tb ||地方,电子邮件,电话 到v_name,v_email,v_phone 来自id = v_user_id的用户; 更新users_tab设置 naziv = v_name,telefon = v_phone,email = v_email 其中id = v_id;