wmsys.wm_concat() 这个函数,是把一列的值都取出来放在一个字段里,并且是用逗号隔开的
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的万全网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
SELECT Q'{ --""I'am }' FROM dual;
大括号中间的内容随便写 ,任何符号都可以,包括注释符号--
SELECT 'A'||CHR(39)||'B' FROM dual;
CHR(39)就是特殊符号'
说明插入语句中缺少必要的逗号,或者括号有中文导致的。
sql:insert into tablename(create_time) values( to_date(to_char(sysdate,'yyyy-mm-dd')','yyyy-mm-dd');
解释:oracle中必须保持括号对称,并且标点都是英文,否则的话,可能会报错一些并不是真实情况的错误的,日期格式转换必须先变成字符串,之后再变成需要的日期格式。
变成全角的,或者把逗号转码,例如:qt; 插入数据库存储,读出的时侯再转码
基本上而言这种方式已经是最简单的了。
你想,首先你要写文字列,这部分是不能省,也没办法省的,那么剩下的就是中间的逗号,就算你先把逗号加在每个字段的前面或者后面,那么最后不是还要去掉一个逗号,这样反而增大了查询的繁琐性。
当然,如果真的想写,自己写一个函数也可以(其实就是加一个分隔符,可以用循环的方式也可以用最后一个分隔符去掉的方式),不过这种需求应该不多,至少我没见过几回,所个人觉得必要性不大。
还有一种方式是先列转行(说成行转列也行,反正都是旋转90度),然后用wmsys_concat来做
不过不管哪种方式个人觉得,现在的这种方式更便于操作,改变。假设,今天是5个字段的合并,假设明天改变需求,要求6个或者4个,那么对于这个语句来说可能稍微增加或减少几个字符就行了,如果是函数或者列转行,那么就要麻烦很多了。