TypeCodes

MySQL5.7中使用GROUP_CONCAT数据被截断的问题

前天在生产环境中遇到一个问题:使用GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题。后面故意重新INSERT了一个字段长度超1024字节的数据,但是navicat能完整展示出来,所以就排除了navicat的问题。

然后想到1024这个熟悉的数字,会不会是C++框架在接收MySQL通过socket传输过来的数据时被处理了呢?于是手工在日志中打印这个字段,发现即使数据长度超过1024字节仍然是可以完整显示的。

1 查找原因

至此,只能从SQL语句出发了。网上搜了下GROUP_CONCAT …

- 阅读剩余部分 -

初始化Oracle数据库的bat批处理脚本和shell脚本

在使用Oracle数据库的时候,经常会用到表结构、存储过程、视图以及表数据等等元素的导入和导出。如果在Windows的cmd窗口中使用sqlplus的命令登录Oracle后,直接使用@ sql导入文件路径或者start sql导入文件路径,就有一个缺陷:不会产生跟踪日志文件,这样就没法了解哪些sql语句执行成功了,哪些sql语句执行失败从而导致整个数据库初始化失败了等情况。另外,无论是在Windows系统还是Linux系统,手输命令很麻烦也很容易出错,所以自己整理了一份适用于Windows的bat批处理脚本和一份适用于Linux系统的shell脚本。

这两份脚本代码比较简单,主要是利用了sqlplus命令将包含多条sql语句用于初始化Oracle数据库的sql文件执行 …

- 阅读剩余部分 -

图解如何在PLSQL中调试PACKAGE包中的FUNCTION函数

Oracle中的packages包是一组包含procedures存储过程、functions函数和游标等元素的组合。相比Sybase数据库的SQL Advantage工具,Oracle数据库的管理工具——PLSQL在调试存储过程还是方便。

PLSQL Developer调试packages包

1 Oracle数据库中的packages包、functions函数和procedures存储过程的关系

Oracle数据库中的packages包类似于Java中的packages的概念,在一个packages包中不允许定义多个相同的functions函数或者procedures存储过程,但允许重载functions方法和procedures过程。packages包是可以被引用的,例如在C程序中调用packages包中的functions方法:

sprintf( SqlStr, "select pkg_Name.Func_Name('%s …

- 阅读剩余部分 -

Oracle数据库SQL操作语句报错的解决

最近在小红帽里面用GCCC编译含Oracle数据库SQL操作语句的C程序时候遇到了下面的7个报错信息,现整理出来Mark一下。

1 错误信息
[-1400][ORA-01400: cannot insert NULL into ("CARDMAIN"."CLR_SFTC000BLOCK0"."SE]
<!--
描述:CARDMAIN数据库用户,CLR_SFTC000BLOCK0数据表,SE表字段

原因:Oracle数据库对于特定类型的非空字段无法区分空值和空字符串

解决 …

- 阅读剩余部分 -

解决Windows中PLSQL连接虚拟机中Oracle缓慢的问题

博主上周末在自己的Windows宿主机中,用PL/SQL连接虚拟机中的oracle数据库时,出现了大概需要等待10多秒的时间才能登录成功的问题。很奇怪的现象,因为我在Windows中ping虚拟机中的oracle服务器IP地址,响应时间都在1ms内。在网上GG了下,没找到答案。后经我搭档指点,原来是Linux系统中的DNS解析在寻址的时候出现“错误”。这个跟我在用桥接模式连接网络的时候,错误配置了“Network Configuration”中的DNS有关(在用Bridged模式联网时,可以不用配置DNS)。

桥接模式错误配置DNS

解决方法 …

- 阅读剩余部分 -