
数据库
ycb1689
这个作者很懒,什么都没留下…
展开
-
高效ms sql分页存储过程
在编写分页存储过程前我们先为数据库创建一个测试表,这个测试表明叫做order,当中有3个字段,分别是or_id,orName,dateSta;下面创建表脚本: CREATE TABLE [dbo].[Orders]( [or_id] [int] IDENTITY(1,1) NOT NULL, [orName] [nvarchar](50) NOT NULL,原创 2013-07-30 14:25:56 · 697 阅读 · 0 评论 -
如何从SQLSERVER迁移大批量数据到ORACLE
首先将SQLServer数据导出成txt格式原创 2014-08-27 14:20:49 · 2767 阅读 · 0 评论 -
Oracle外连接中对非连接条件使用(+)的作用
1.先来说下Oracle外连接语句中对非链接条件使用(+)的作用问题之前问过朋友,当时大脑处于短路状态,居然没想明白作用是啥。先看例子如下:select * from dept,emp where dept.deptno=emp.deptno(+) and emp.ename(+)!='KING';使用scott账户登录,执行上面的sql语句,可以分析出此sql语句的意图是将部原创 2014-09-15 12:57:44 · 706 阅读 · 0 评论 -
SQL Server 中关于EXCEPT和INTERSECT的用法以及 OPENQUERY连接Oracel比较
delete from dbo.Test_ProDetailTable where Pro002 in(SELECT bar_code FROM OPENQUERY(MYSAP, 'SELECT bar_code FROM ZSDSS_BAR_CODE_DATA') a --exceptINTERSECTSELECT Pro002 FROM dbo.Test_ProDe原创 2014-08-27 10:55:15 · 1032 阅读 · 0 评论 -
Oracle 存储过程发送邮件
CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT VARCHAR2, P_SUB VARCHAR2, P_SENDOR VARCHAR2,原创 2014-10-16 10:42:02 · 921 阅读 · 0 评论 -
Update Select 嵌套更新或批量更新一句SQL语句搞定
有两个表:SPEC1、tmpDOTSPEC1种一列为:HIGHtmpDOT共有两个:OLD、NEW两个表的内容大概如下:SPEC1:... HIGH ...... A ...... B ...... A ...... C ...... B ...... D ...tmpDOT:OLD NEWA原创 2015-02-15 13:11:01 · 42521 阅读 · 2 评论 -
Oracle中使用Start With connect by prior实现树功能
select '|' || lpad(level, level * 4 + 1, '_') || '' ||a. member_name member_cname,a.member_type,decode(a.member_type,'加盟店',decode(a.MEMBER_LEVEL,1,'专门店','2','指导级店','3','资深指导级店','4','地区督导','5','全国督导'原创 2015-02-25 14:01:38 · 829 阅读 · 0 评论 -
利用oracle存储过程发送邮件附档
从一外国技术论坛里面找到了,需要的朋友可以参考下* ** ****************************************************************************************** ** * ** DESCRIPTION OF SCRIPT : THIS PROCESS IS FOR SENDING MAIL WITH TH原创 2015-05-26 09:17:16 · 844 阅读 · 0 评论 -
mysql同时使用order by和limit查询时采用时间戳做排序时的一个严重隐患 -- 丢失数据
我经常使用order by和limit来做数据分页显示并排序,一直也没发现过什么问题。但这两天缺遇到一个严重的问题,在按时间戳升序排列并用limit分批读取数据时,却发现在某些记录丢失了,表中明明有的记录确死活读取不到。研究了大半天终于发现了问题所在,记录一下以防忘记,也是给大家提个醒。问题重现工具和原料数据库:Ver 14.14 Distrib 5.6.11, for Linux...原创 2018-08-20 11:53:39 · 7707 阅读 · 2 评论 -
SQL update select结合语句详解及应用
SQL update select语句最常用的update语法是:原创 2014-07-29 13:43:38 · 1008 阅读 · 0 评论 -
SQL 2005下千万数量级分页存储过程
If object_id('Middle_Table_SP_Pagination')is not nulldrop proc Middle_Table_SP_PaginationgoCreate PROCEDURE Middle_Table_SP_Pagination/**//**************************************************原创 2014-07-17 14:08:16 · 748 阅读 · 0 评论 -
Mysql存储过程(一)——原子性
Mysql 中,单个 Store Procedure(SP) 不是原子操作,而 oracle 则是原子的。如下的存储过程,即使语句 2 失败,语句 1 仍然会被 commit 到数据库中:Sql code 1-1 : create table testproc(id int(4) primary key, name varchar(100)); CREATE PROCEDU原创 2013-07-30 14:49:27 · 2273 阅读 · 0 评论 -
Mysql存储过程(二)——多结果集返回与java获取
存储过程经常需要返回多个结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结 果 集。这一点 Mysql 相对比较方便,如下代码即可实现输出两个结果集: Sql code 2-1: CREATE PROCEDURE test_proc_multi_select()BEGIN select * fr原创 2013-07-30 14:52:26 · 828 阅读 · 0 评论 -
Mysql存储过程(三)——处理分页
分页功能在任何应用中都比较常见,而 Mysql 的存储过程分页必须通过动态 sql 来执行。分页对应的 offset 和 row_count 必须先用 concat 函数变成字符串组装到 sql 中(如语句 1 ),而不能直接使用(如语句 2 , Mysql 不支持)。 Mysql 分页功能的实现如下代码所示: Sql code 3-1: CREATE PROCEDUR原创 2013-07-30 14:59:17 · 793 阅读 · 0 评论 -
Mysql存储过程(四)——异常处理
有时候,不希望存储过程抛出错误中止执行,而是希望返回一个错误码。 Mysql 支持异常处理,通过定义 CONTINUE/EXIT 异常处理的 HANDLER 来捕获 SQLWARNING/NOT FOUND/SQLEXCEPTION (警告 / 无数据 / 其他异常)。其中, FOR 后面可以改为 SQLWARNING, NOT FOUND, SQLEXCEPTION 来指示所有异常都处理,相当于原创 2013-07-30 15:03:23 · 1060 阅读 · 0 评论 -
mysql建立临时表
在生成报表的时候, 由于使用的查询条件中, 用的 in 函数比较多, 而且关联了好几个表, 所以查询的速度超慢, 甚至会死掉整个数据库. 我以为用 or 可以会快点, 不过, 还是一样, 因为我使用了 in 用在两个字符串上了, 没办法, 想了很久, 常试了很多, 还是不行... 终于, 想到用临时表了, 这一样来, 我不用改变原来条件中读出的数据, 我只需要把原来读出来的数据放在临时表里, 再在原创 2013-07-30 15:34:28 · 1354 阅读 · 0 评论 -
MySQL存储过程
1.1 CREATE PROCEDURE (创建)CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块END 注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前使用关键词 OUT或INOUT在mysql客户端原创 2013-07-30 17:01:23 · 784 阅读 · 0 评论 -
Mysql存储过程(五)——SEQUENCE的实现
在 oracle 中, sequence 提供多表多字段可共用一个不重复值。 Mysql 中存在自增列,基本可以满足 PK 的要求。但自增列存在限制: a. 只能用于表中的一个字段,一张不能同时存在两个以上的自增列 ; b. 自增列必须被定义为 key ( PK 或 FK ) ; c. 自增列不能被多个表共用 ; d. 当 insert 语句不包括自增字段或将其值设置为 NULL原创 2013-07-30 15:05:00 · 1197 阅读 · 0 评论 -
Mysql存储过程(六)——存储过程中使用临时表
Mysql 不支持数组。但有时候需要组合几张表的数据,在存储过程中,经过比较复杂的运算获取结果直接输出给调用方,比如符合条件的几张表的某些字段的组合计算。 Mysql 临时表可以解决这个问题。临时表:只有在当前连接情况下, TEMPORARY 表才是可见的。当连接关闭时, TEMPORARY 表被自动取消。这意味着两个不同的连接可以使用相同的临时表名称,同时两个临时表不会互相冲突,也不与原原创 2013-07-30 15:06:38 · 4917 阅读 · 0 评论 -
mysql修改字符编码
第一种:通过mysql命令行修改:1)首先查看数据库字符编码,命令为:show variables like’collation_%’;show variables like’character_set_%’;2)在命令行修改字符编码(例如gb3212)set character_set_client=gb2312;客户端编码方式set character_set_conn...转载 2012-05-22 09:01:58 · 660 阅读 · 0 评论