- 浏览: 64428 次
- 性别:
- 来自: 南京
最新评论
文章列表
在工作中,有的项目使用Oracle数据库,有的使用SQL SERVER数据库,当一部分功能开发完毕后,提交测试人员测试,当提交的sql 脚本比较多的时候(例如30个sql脚本),测试人员反馈一个一个执行比较麻烦耗时,希望能批量一次性执行完所有脚本。
所以花时间分别研究了一下Oracle和Sql Server 批量执行多脚本的方法,如下分别描述。
Oracle:
Oracle处理方式是写一个总的sql,用@的方式把所有sql加上,只要执行总的sql即可。
1.准备数据,有两个脚本1.create_view.sql 和 2.fn_test_sj.sql。(以两个 ...
在日常开发过程中,构建自动化的部署,要求开发人员提供的数据库Sql能够多次重复的执行,这就要求对Oracle的一些对象,例如:表,索引,序列,表的列等需要做判断,如果存在,先drop掉,然后新建。否则,脚本只能执行一次,下次执行的时候就会报对象已经被占用的错误,附件的Oracle package封装了日常使用的几个操作的解决办法。
--判断表的列是否存在,存在drop掉
procedure DROP_COLUMN_IFEXISTS(p_table_name varchar2,p_column_name varchar2);
--判断表是否存在,存在drop掉
...
这几天项目开发过程中,使用了floor函数,记得就是一个取整数的函数,所以就这样用了,但是实际测试人员测试功能发现有些问题,正确的描述是:
【 floor(n)取小于等于数值n的最大整数】
作用于正数的情况,floor和trunc的结果一致:
select floor(90.99) test
from dual;
select trunc(90.99) test
from dual;
结果都是90。
如果在负数的情况,可以看出两个函数的区别:
select floor(-90.99) test
from dual; ...
开发中经常会遇到通过前台javascript对数字做比较的功能,常见的有,例如页面有两个数字X,Y,获取两个数字的值比较大小,如果X大于Y,do something else do elsething。
常见问题是X为1000,Y为500,比较后程序返回1000<500,非常奇怪,原因就是javascript获取页面的值,如果直接做比较,是按照字符串顺序比较的,5的字符大于1,因此产生了500>1000的怪异现象,正确的做法是将值获取后转换为number后,在做比较。
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD ...
Oracle复制表数据的两种用法
- 博客分类:
- Oracle数据库
Oracle复制表数据两种用法:
1. insert into A(a,b) select a,b from B;
2. create table C as select a,b from B;
如下为试验数据:
写道
--新建测试表create table test_sj1( id integer primary key, name varchar2(100));create table test_sj2( id integer primary key, name varchar2(100));--插入测试表1insert into test_sj1( ...
经常会碰到一些oracle的需求,例如在生成本年1-12月份的年月记录,然后再和业务表进行left join,以此获得本年月度的一些数字的分布
这里说说如何快速的生成1-12月份的年月记录,关键是如下这条sql
select rownum as rn from dual connect by rownum<13
写道
select a.my_year||(case when b.my_month<10 then '0'||to_char(b.my_month) else to ...
在Oracle写存储过程的时候,如果有特殊字符,在本机自己编写,没有问题,但是如果要迁移到别的库中,将存储过程脚本导出,并导入,就可能存在问题。
典型的例如“&”符号,如果存储过程出现此符号,但Oracle认为这是特殊符号,是读取输入变量的意思,导入存储过程就会提示你输入值。
解决办法:加入一句话:set define off 即可。
写道
spool testsj.logset define offpromptprompt Creating procedure TESTSJprompt =========================promptc ...
浮点数计算精度问题是javascript自身存在的问题。比较经典的例子为2.0-1.1, 计算的结果为0.8999999999999999。 精确计算的基本思路是将其全部转换为整数后计算,整数计算不存在误差,然后再除以之前乘的数。 如下代码1为测试html, ...