
oracle
文章平均质量分 60
gaoyusi4964238
百度音乐基础数据(大数据)方向技术负责人,下属包括数据平台、数据挖掘&音乐推荐、数据仓库、数据分析4个技术&业务方向
(注:名片比较旧,是2010年作为高级工程师时印制的,由于除title外各类信息均为变化,所以未更新名片)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
oracle中regexp_like查询数字(整形和非整形)型字符串和非数字型字符串的方法
今天需要在数据库中做一个正则的查询——即判断某个字符型属性字段中的值都能转换为数字型,其中数字型包含整型和非整形两种情况。因为之前用java程序实现了过一个该功能,具体代码如下: public static boolean isNumeric(String str){ if(isEmpty(str)){ return true; } Pat原创 2010-03-02 20:04:00 · 5921 阅读 · 1 评论 -
java对于数据库一系列操作汇总
import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;/***注:getConnection/co原创 2009-07-28 13:47:00 · 280 阅读 · 0 评论 -
Oracle-Decode()函数和CASE语句的比较
case能做复杂的判断,但是decode则相对有限,同时,case能做一些范围(比如大于,小于的多值)判断,但是decode则相对较差。(eg:[select t.id,t.grade,case when t.id>1 and t.id1 end from test_temp t;])本文讲述了Oracle-Decode()函数和CASE语句的比较。首先,举2个简单的原创 2009-07-25 14:18:00 · 181 阅读 · 0 评论 -
oracle中序列-sequence
先假设有这么一个表:create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2(40) not null, DepartOrder INT转载 2009-07-25 14:15:00 · 141 阅读 · 0 评论 -
REF CURSOR 小结
利用REF CURSOR,可以在程序间传递结果集(一个程序里打开游标变量,在另外的程序里处理数据)。也可以利用REF CURSOR实现BULK SQL,提高SQL性能。REF CURSOR分两种,Strong REF CURSOR 和 Weak REF CURSOR。Strong REF CURSOR:指定retrun type,CURSOR变量的类型必须和return type转载 2009-07-25 14:08:00 · 115 阅读 · 0 评论 -
用java调用oracle存储过程
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励。一:无返回值的存储过程存储过程为:CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) ASBEGIN转载 2009-07-25 14:04:00 · 107 阅读 · 0 评论 -
select into 和 insert into select 区别
select * into destTbl from srcTblinsert into destTbl(fld1, fld2) select fld1, 5 from srcTbl 以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的。第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创原创 2009-07-25 14:01:00 · 94 阅读 · 0 评论 -
sequence在oracle,db2中的操作差别及java中调用方法
一 sequence的定义oracle中定义:create sequence testminvalue 1maxvalue 1000start with 1increment by 1cache 20nocycleorder; DB2中定义:create sequence test as bigint start with 1原创 2009-07-25 01:01:00 · 1652 阅读 · 1 评论 -
大话PreparedStatement.addbatch()的使用
Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用. 1.建立链接,(打电话拨号 ) Connection connection =getConnection();2.不自动 Commit (瓜子不是一个一个吃,全部剥开放桌子上,然后一口舔了)co转载 2009-07-26 17:59:00 · 275 阅读 · 0 评论 -
oracle触发器将sequence生成值插入数据库表中(id字段)方法
1.sequence-- Create sequence create sequence SEQ_T_XZ_YJBminvalue 1maxvalue 999999999999999999999999999start with 124increment by 1nocache; 2.该sequence的trigger(每次插入表T_XZ_YJB之前为其id字段赋予s原创 2009-08-03 21:43:00 · 1203 阅读 · 0 评论 -
解决IP地址变化后Oracle 10g如何不受影响
在实际的工作环境中,许多人为了适应客户的环境,总是需要频繁更改IP地址,但是在IP地址变换后,Oracle 10g就会出现启动不了的现象。网上相关问题的技术文章大多数是针对Oracle 9i,或者以前的Oracle 8i的版本,对与Oracle 10g的版本,大多只是介绍了大概,并没有给出具体的步骤!本文中,我们将针对这一问题给出具体的解决步骤: 解决步骤如下: 1、控制面板--原创 2009-08-27 19:38:00 · 161 阅读 · 0 评论 -
实现在数据库查询的select 查询字段中关联其他表的方法
在实际开发过程中,特别是在做数据查询的时候,能够根据动态生成的sql语句将查询的结果转化并返回到业务处理逻辑(或页面展示出来)能大大的减轻业务逻辑的处理复杂度。大部分情况下,这种动态生成的sql查询语句写法如下: select A表.字段1,A表.字段2,B表.字段返回,C表.字段返回 from A表 ,B表,C表 [where A表,B表,C表关联及各自的条件语句] 但是这个方法有一原创 2009-08-30 18:07:00 · 1144 阅读 · 0 评论 -
Oracle中如何用一条SQL快速生成10万条测试数据
做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条SQL快速生成大量的测试数据的方法。产生测试数据的SQL如下:SQL> select rownum as id, 2 to_char(sysdate + rownum / 24 / 3600, y转载 2009-12-10 11:43:00 · 101 阅读 · 0 评论 -
对字符串的“sum”——在Oracle中自定义聚集函数的例子
[引自] http://blog.itpub.net/post/468/3380 Oracle的定制功能十分强大。前几天在碰到一个问题的时候,查询文档发现,oracle不但允许用户定制自己的函数,还可以定制自己的聚集函数和分析函数。下面是我使用自定义聚集函数建立一个字符串“sum”的小例子。SQL> CREATE OR REPLACE TYPE T_LINK AS转载 2009-11-15 12:11:00 · 180 阅读 · 0 评论 -
利用rank()实现oracle查询结果自动生成序号
想在查询结果中自动生成序号,结果在网上苦找了半天也没找到一个靠谱的解决方法,后来想起rank()方法(给查询出的数据确定等级),就采用了该方法变通的实现了这么个功能(即利用了他的等级计算实现);不过总觉得该方法不是那么直接,所以如果哪位有更好方法,可以在这里相互分享一下。 1.未生成序号前取出数据如下: select t.a, t.b from test tA原创 2009-11-15 13:58:00 · 2258 阅读 · 0 评论 -
Oracle多行记录合并/连接/聚合字符串的几种方法
【引用】http://tangshd.blog.sohu.com/96035768.htmlOracle多行记录合并/连接/聚合字符串的几种方法 怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结。 什么是合并多行字符串(连接字符串)呢,例如:SQL> desc te转载 2009-11-15 12:20:00 · 554 阅读 · 0 评论 -
解决java resultSet中数字以getString()读取时被截掉过长小数位的问题(oracle情况下)
最近在运用JDBC的resultSet读取数据库数据时,发现一个奇怪的现象,就是如果在java中调用ResultSet的getString()方法获取小数位过长的数值型数据时,那么该数值型数据会被四舍五入,更有甚者,对于整形的数字,其读出数据为“xxx.”(即数字后面带一个小数点),虽然没查找到关于该情况发生的原因,但是初步估计是ResultSet在读出数据并将数字型数据强制转化为字符串型数据时,原创 2009-11-15 10:19:00 · 1950 阅读 · 0 评论 -
Oracle创建表空间、创建用户以及授权、查看权限
创建临时表空间CREATE TEMPORARY TABLESPACE test_tempTEMPFILE C:/oracle/product/10.1.0/oradata/orcl/test_temp01.dbfSIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;创建用户表空间CREATE TA转载 2009-10-26 14:03:00 · 97 阅读 · 0 评论 -
多表关联时在where语句中慎用trim()方法
最近做的一个项目由于前期数据库设计不合理,导致多表关联的主外键长度设计不一致,以致过长主外键中过长的字段在填入相同字段时,多余部分被填入空字符。迫于无奈,就在多表关联的where语句中使用了trim()方法。类似如下:select A.key,B.key,C.key from A,B,C where trim(A.key)=trim(B.fk) and trim(A.col)=trim(C.p原创 2009-09-12 16:55:00 · 518 阅读 · 0 评论 -
windows下自动备份oracle数据库的方法
1.首先建立一个备份文件存放目录,这里为c:/backup;2.新建一个批处理文件,命名为backup.bat(命名为其他文件亦可);并在其中存入以下代码:exp username/password@dabaseName file=c:/backup/sdmp%date:~0,10%.dmp owner=username (注:如果想导出数据库下某几张表,代码如下:exp use原创 2009-09-03 23:05:00 · 618 阅读 · 0 评论 -
oracle中function 和procedure使用区别
考虑是使用函数还是使用存储过程可以根据以下方面:从参数的返回情况来看:如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;从调用情况来看:如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《ORACLE 9I PL/SQL程序设计》(机械工业出版社);如果原创 2009-07-25 14:08:00 · 175 阅读 · 0 评论 -
Oracle 存储过程 实现 JAVA中的LIST输入参数
当需要把插入多条数据的行为合并为一个事务时,可以考虑把一个list型数据作为参数传入存储过程, 可以调用jdbc内部实现类来实现,这些类在classes12.zip(oracle 8,别的版本可能是其他名字的zip包)。 如: 需要将一个list传入存储过程。 具体操作如下: 1,建立数据库对象来转载 2009-07-25 14:06:00 · 992 阅读 · 0 评论 -
DB2/Oracle/SQL server判断某个字符串或单个字符在源字符串中出现的位置
Oracle格式:instr(source_string,sub_string [,n][,m]) n表示从第n个字符开始搜索,缺省视为1,m表示第m次出现,缺省视为1。示例:select instr(ababcde,a,2,1) from dual; 结果:3Db2 格式: Locate(sub,string [,n]) 从前至后匹配Posstr(st原创 2009-07-25 01:17:00 · 2820 阅读 · 0 评论 -
Oracle数据显示--横表转纵表
1.建表-- Create tablecreate table test( dm1 char(3), dm2 char(3), mc1 nvarchar2(20), val nvarchar2(20)) 2.填入数据如下: DM1DM2MC1VAL1011c11001011原创 2009-07-25 01:08:00 · 724 阅读 · 1 评论 -
Hibernate映射类型对照表
string从java.lang.String 到 VARCHAR (或者 Oracle 的 VARCHAR2)的映射。date, time, timestamp从java.util.Date 和其子类到SQL 类型DATE, TIME 和TIMESTAMP (或等价类型)的映射。calendar, calendar_date从java转载 2009-07-25 14:19:00 · 667 阅读 · 0 评论 -
获取/添加oracle中数据库和表的注释
1.添加表注释 comment on table table_name is comment_info;2.添加列注释 comment on column table_name.col_name is comment_info;3获得表注释select * from user_table_comments where table_name=tabl原创 2009-07-25 14:13:00 · 986 阅读 · 0 评论 -
oracle-merge用法详解(根据一个表对另一个表增/删/改
oracle-merge用法详解 Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.在Oracle 10g中MERGE有如下一些改进: 1、UPDATE或INS转载 2009-07-25 14:12:00 · 390 阅读 · 0 评论 -
ORACLE触发器介绍1
一 触发器介绍 触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:* 安全性。可以基于数据库的值使用户具有操作数据库的某种权利。# 可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据。#转载 2009-07-25 14:10:00 · 121 阅读 · 0 评论 -
orcle中正则表达式使用
Oracle SQL 语句中关于正则表达式的函数有 REGEXP_LIKE(匹配) REGEXP_INSTR (包含) REGEXP_REPLACE(替换) REGEXP_SUBSTR(提取) 如 手机号码的表达式: ^[1]{1}[35]{1}[[:digit:]]{9}$ 查询客户信息表(tKHXX)中有手机号码(SJHM)的可以这样查询 源码复制打印SE转载 2009-07-25 13:57:00 · 322 阅读 · 0 评论 -
数据库自动按分类编号
-- 有一明细表A存储的数据如下 -- 编号 品名 数量 -- ---- ---------- ----------- -- A001 品名一 100 -- A001 品名二 110 -- B002 品名一 200 -- B002 品名二 220 -- B002 品名三转载 2009-07-25 12:28:00 · 411 阅读 · 0 评论 -
oracle中获取sequence的有关信息方法
select sequence_name,--序列名 min_value,--最小值 max_value,--最大值 increment_by,--序列的增量 cycle_flag,--是否循环,Y/N order_flag,--是否有序,Y/N cache_siz原创 2009-07-25 01:22:00 · 598 阅读 · 0 评论 -
oracle查询表名以及表的列名
1.查询表名: select table_name,tablespace_name,temporary from user_tables [where table_name=表名] 其中:table_name:表名(varchar2(30)); tablespace_name:存储表名的表空间(varchar2(30)); t原创 2009-07-25 01:22:00 · 3705 阅读 · 1 评论 -
[引]在Oracle中如何利用Rowid查找和删除表中的重复记录
平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。 下面总结一下几种查找和删除重复记录的方法(以表CZ为例):表CZ的结构如下:SQL> desc czName Null? Type----------------------------------------- -------- ----------转载 2009-07-25 12:29:00 · 268 阅读 · 0 评论 -
oracle 存储过程的基本语法 及注意事项
oracle 存储过程的基本语法1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将原创 2009-07-25 14:03:00 · 122 阅读 · 0 评论 -
oracle中如何判断字符串是否全为数字,以及从任意字符串中提取数字
本文介绍了判断字符串是否全为数字的4种办法,另外还介绍了一个translate函数的小技巧,从任意字符串中提取数字(调用2次translate函数)。这个办法是一个公司同事发现的,用起来很方便,但理解起来稍有点困难。1、通过ASCII码判断是否数字,介于[48, 57]之间,(ascii('0') = 48, ascii('9') = &apo转载 2009-07-25 13:56:00 · 583 阅读 · 0 评论 -
java操作Sql总结
1、建立连接 这个是一切连接数据库的基础,当然这个也比较简单。 一下是一个连接Sql2000的数据库程序,还有一个显示一个表的方法。import java.*; public class ConnectData{ private java.sql.Connection con = null; private java.sql.Statement stmt=null; priva转载 2009-07-28 09:29:00 · 210 阅读 · 0 评论 -
oracle:ltrim()
注意:必须从左边第一个字符截取,该字符必须匹配。eg:ltrim(1234,1)结果:234 ,但是:ltrim(1234,2),结果:1234先看几个实例:SQL> select ltrim(109224323,109) from dual;LTRIM(109224323,109)------------------------2243转载 2009-07-25 14:19:00 · 139 阅读 · 0 评论 -
删除数据库表中所有数据的高效方法
使用truncate可以将表截断,他会删除表中所有行,并重置表的存储空间。它不需要在任何undo 空间,也不用执行commit是删除永久化。所以效率比delete高 形式: truncate table table_name;原创 2009-07-25 14:14:00 · 566 阅读 · 0 评论 -
oracle触发器介绍2
触发器 是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。 功能: 1、 允许/限制对表的修改 2、 自动生成派生列,比如自增字段 3、 强制数据一致性 4、 提供审计和日志记录 5、 防止无效的事务处理 6、 启用复杂的业务逻辑 开始 create trigger biufer_em转载 2009-07-25 14:09:00 · 126 阅读 · 0 评论 -
java读oracle中返回为object的方法(有问题)
在oracle中定义了一个列表的类型nsrlist: create or replace type nsrlist is varray(2000) of varchar2(20) 存储过程body如下: create or replace package body TESTVARRAY is procedure te转载 2009-07-25 14:09:00 · 215 阅读 · 0 评论