Oracle数据库的内置定时任务

想要使用Oracle自带的定时计划,来固定每过一段时间执行一次固定的SQL语句,按照如下操作进行设置。

1. 首先创建一个存储过程(必须是存储过程,在设置定时任务时直接写SQL语句会不执行)

create or replace procedure proc_changesettings
as
begin
delete from tb_f_record where id = 0;
commit;
exception
when others 
......

Oracle 查询时将结果为负数的转换为0 取最大值、最小值[Greatest、least]函数

我们在做数据库统计时往往会遇到查询列是计算出来的,例如查询两公司销售差额等。最近有一个这样的需求:将计算后的结果为负数的改为0,一般来讲我们会直接使用【case when then else end】这样的操作,但是当你计算的公式很长很长的时候,你肯定不想弄两遍公式吧,一个是sql显得臃肿不美观,另外一个数据库处理速度相对也会影响。

这时推荐Oracle的两个函数:取......

Oracle 错误 ORA-01450:超出最大的关键字长度(6398)

有时我们在【创建数据表】时、【创建物化视图】时、亦或者在【给数据表创建索引】时,提示这个错误:
ORA-01450:超出最大的关键字长度(6398)

这个错误网络上中文解释很少,后在国外网站找,找到了问题原因。其实它的提示意思就是”单个表中,建立索引的字段长度总和不能超过6398字节“。然后我看了一下我的表,我是在做物化视图时遇到的这个错误,我检查了一......

SQL Server 删除所有表内数据

我们有时需要将数据库内的所有表数据删除,例如调整账套,恢复损坏数据库时等,然而不能直接把表删了,因为要保留表结构以及一些约束。这里使用如下sql命令:
先将所有表的约束取消,然后执行删除所有表,最后将约束启用。非常简单直接.

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE
......

SQL Server 数据库(数据表)损坏修复 dbcc checkdb、dbcc checktable

一般数据库损坏可以尝试使用dbcc checkdb(‘dbname’)直接处理即可,但有时直接使用此方法不会显示任何的错误信息,且不会有任何的修复动作。
然后尝试使用checktable命令则有反应且可以恢复,但数据表多的时候不可能自己手动一个个复制表名执行吧,这时候遍历所有数据表依次修复数据表是不错的解决方案。
首先需要将数据库设置为单用户连接,恢复完毕后取消单用户设置即可。

设置
......