记录通过执行Oracle的执行计划查询SQL脚本中的效率问题   问题现象: STARiBOSS5.8.1R2版本中,河北对帐JOB执行时,无法生成发票对帐文件.   首先,Quartz表达式培植的启动时间为2分钟执行一次JOB,通过日志上看,该JOB已经启动.且在开始统计发票信息后就没有新的日志了,因河北广电数据库很大,猜测是统计发票的SQL 效率低.在比较小的库上执行,系统正常生成发票对帐文件,因此确认猜测为正确的.   然后,将发票统计的SQL截取出来,其中一个SQL如下: select…
测试的工作中,经常会遇到项目交接或者搭建一个新的测试环境,而创建oracle数据库用户及表空间时,需要提前找出脚本中的 数据库用户名和表空间名,所以自己写了一个python脚本,自动找出sql脚本中的数据库用户名和表空间名以及对应出现的次数. 脚本如下: #encoding=utf-8 import redef FindUsernameOrTableplace(*dir_part): username_num={} tablespace_num={} try: for i in dir_part…
今天运行壹個小程序,功能是读取指定目录下的 SQL 脚本,并加载到内存中批量执行,之前的程序运行良好.但是今天相关开发人员更新了其中壹個 SQL 脚本,于是程序运行的时候就出错了,错误提示信息如下:批处理中出现错误: ORA-01756: 引号内的字符串没有正确结束.用 Notepad++ 打开看了下 SQL 脚本,没有发现明显的语法错误,再仔细找了找包含单引号和双引号的语句,也没有看到语句未正确结束的地方.于是有点困惑,开始启动 Eclipse 的 Debug 模式仔细分析,并调低了日志级别到…
当前powerDesign版本:16.6 列上指定:Collation = utf8_general_ci 但是SQL脚本中,列字段没有显示Collect ------------------------------------------------------------- 工具栏->database->edit current DBMS然后,选中:MYSQL50::Script\Objects\Column\Add 脚本中新增如下表达式:[ [COLLATE] %Collate%] 修改…
摘自:http://www.maomao365.com/?p=6612 摘要:下文介绍sql server中,sql脚本避免出现除零错误的方法分享 在各种业务系统开发中,通常会遇到除零的错误,下文分享了两种处理方法:方法1: case when end declare @a int ---分子 declare @b int ---分母 then NULL else @a/@b end as [a除以b] 方法2:nullifnullif(表达式A,表达式B)—-如果表达式A不等于表达式B,则返回…
使用PowerDesigner生成数据库建表SQL脚本时,尤其是Oracle数据库时,表名一般会带引号.其实加引号是PL/SQL的规范,数据库会严格按照“”中的名称建表,如果没有“”,会按照ORACLE默认的设置建表(DBASTUDIO里面),默认是全部大写,这样,在ORACLE数据库里的字段就如“Column_1”.如果你把引号去掉,ORACLE自动默认为全部大写,即“COLUMN_1”,所以这段SQL在PL/SQL中执行的时候是没有任何问题的,如果不加引号,在PL/SQL会自动识别为大写.如…
在数据库安装包中,我们通过osql.exe这个工具来对相关的数据库脚本进行更新,昨天突然发现安装包报错了,说脚本错误,但我们将脚本拿到数据库查询分析器中执行,一切OK. 问题出在哪里呢? 通过使用osql单独来执行报错的脚本,打印相关信息: osql.exe -S .\SQLDEV -U sa -P MyRoot -b -n -r 1 -i ".\UpdateTable.sql" -o "c:\hahah.txt" @echo %errorlevel% @pause…
)--变量 ) set @itemValue='select @a=getdate()'--赋值 exec sp_executesql @itemValue,N'@a nvarchar(max) output',@date output --执行 --获取 select @date…
摘自:http://blog.sina.com.cn/s/blog_afe616ab0101camd.html SQL where 1=1 和0=1的作用 where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句. 举个例子,如果您做查询页面,让用户自行选择并输入查询关键词,代码大体如下: string MySqlStr=”select * from table where”: if(Age.Text.Lenght>0)   { MySqlStr=MyS…
oracle select nvl(字段名,0) from 表名; ----------------------------------- sqlserver select isnull(字段名,0) from 表名;…