Oracle换行

需求背景:要求从数据库查出来的数据按照格式输出到对应的界面域
格式如下:
学校:东风中学:三年级;。。。
医院:上海九院:李德明;。。。
开发技术:前端:miniui;后端spring mvc+mybatis
我的解决思路:
从数据库中按照要求将数据查出来,并且插数据的时候就对数据换行,然后让查找
出来的数据按照查找出来的格式直接显示到界面上。
用到的点:
(1)Oracle中的换行,用CHR(10)表示换行
比如:SELECT 'A'||CHR(10)||'B'||CHR(10)||'C' FROM DUAL
效果如下:
A
B
C
你在PL/SQL中看着是一行数据,但是你复制粘贴出来以后会发现数据已经换行了
注意点:在mybatis里面用同样的写法只是在CHR(10)两侧多加一个空格就会报SQL错误,去掉这些空格,
SQL就是正确的,具体原因我也不太明白(有知道的大神可以告诉我一下,谢谢)
(2)现在数据已经在换行,我只是需将数据显示就ok,

var tgjcbh = mini.get('tgjcbh').getValue();
var url="${ctx}/updateJzjl/queryCalculateResult";
$.ajax({
    url:url,
    type:"get",
    data:{tgjcbh:tgjcbh},
    async:false,
    dataType:"text",//第一次是没有写dataType的
    success: function (data) {
    	//data=$.parseJSON(data);
    	//mini.get('bszy').setValue(data.result);
        if(data!=null && data!='' && data!=undefined){
            mini.get('bszy').setValue(data);
        }else{
            mini.alert("计算无值可显示");
            return ;
        }
    }
});

后台处理如下:

@ResponseBody
    @RequestMapping(value="queryCalculateResult",method = RequestMethod.GET)
    public String queryCalculateResult(HttpServletRequest request){
        String tgjcbh = request.getParameter("tgjcbh");
        String result = updateJzjlService.queryCalculateResult(tgjcbh);
        return result;//第一次返回的是json格式数据 return "{\"result\":\""+result+"\"}";
    }

前端是利用ajax发出请求,执行后台并返回数据,进行显示到textarea中
我遇到的问题是:
(1)按照上面代码中的标注第一次:我SQL里面换行,然后后台返回json格式数据,出现json报错,具体错误没有截图,查了一下是因为$.parseJSON(data);解析json时,由于json数据中带有换行符\n,所以才报错
解决方法:
var v = JSON.parse(str.replace(/\n/g,"\\\\n").replace(/\r/g,"\\\\r"));
因为json在解析的时候,遇到特殊的字符,是需要将其进行转义以后才可以正确解析,否则就会出现解析错误。
(2)数据解析成功后,
mini.get('bszy').setValue(data.result); <textarea id="bszy" name="bszy" class="mini-textarea"></textarea>
将值set进去,界面直接就会显示内容,但是会将\n直接显示出来,并不会按照\n进行换行。但是我将data.result的值直接放进去
mini.get('bszy').setValue("123\n456\n")这样就是可以换行的。直接放data.result是不起作用的。
解决方法:我在ajax请求中添加了dataType:“text”,数据类型是text文本类型
此时我mini.get('bszy').setValue(data);数据值是可以直接放到textarea中,并且会按照\n进行自动换行。

总结一下:
(1)oracle查询字符换行用CHR(10)
(2)ajax请求spring mvc后台返回json格式数据,如果带有特殊字符,一定需要转义,否则会报JSON解析错误
(3)mybatis中oracle的SQL || CHR(10) ||有空格就会报SQL错误,避免这种添加空格。
(4)关于miniUI中textarea自动换行,一般我们都会写
<input id="" name="" value="" class="mini-textarea"/>这种写法在mini中是有问题的,数据是不会自动换行(我是从miniUI论坛上看到的),如果想要达到换行的状态,需要这种写法

<textarea id="" name="" value="" class="mini-textarea"></textarea>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值