oracle
山鹰的天空
追求漂亮的技术,让用户有最好的体验。
展开
-
批量插入
Oracle数据批量插入 System.Data.OracleClient不支持批量插入,因此只能使用Oracle.DataAccess组件来作为提供者。/// <summary> /// Oracle.Data.Access 组件提供的用于批量操作的方法。 /// </summary> public sealed class Or...原创 2019-11-15 11:11:01 · 372 阅读 · 0 评论 -
Oracle解决Ora-01653无法扩展表空间问题
SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M) ", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTT...原创 2019-11-14 09:45:50 · 365 阅读 · 0 评论 -
Oracle生成一百万测试数据的方法
Oracle生成一百万测试数据的方法如下:方法一:创建一个表,并同时添加1000000条数据,代码:create table TestTable asselect rownum as id, to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime, ...原创 2019-11-14 08:31:34 · 562 阅读 · 0 评论 -
Oracle用户、授权、角色管理
每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。Oracle 权限设置一、权限分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而...原创 2019-10-21 10:30:28 · 357 阅读 · 0 评论 -
oracle导入导出数据表
前提:在CMD 命令下导出命令:exp 用户名/密码@数据库owner=用户名file=文件存储路径(如:F:\abcd.dmp)测试截图:expZM/sql123@ORCLowner=ZM file=F\abcd.dmp导入命令:imp 用户名/密码@数据库fromuser=用户名 touser=用户名 file=d:\cu.dmp ignore=yimp...原创 2019-10-14 17:47:37 · 239 阅读 · 0 评论 -
Oracle命令行创建数据库
创建数据库文件CREATE TABLESPACE MyDataBase LOGGING DATAFILE 'D:\Oracle\database\MyDataBase.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;MyDataBase:数据库名称D:\Oracle\datab...原创 2019-10-14 14:34:48 · 907 阅读 · 0 评论 -
oracle导出整个数据库和导入整个数据库命令
一、导出数据库不要进入sqlplus,直接在cmd窗口命令执行下面的命令exp "'sys/oracle@testxxxx as sysdba'" file=G:\sx20190325.dmp full=y@后面的是你的数据库的名称file= 填写的是你要保存到哪个盘里如图所示耐心等待导出成功,这样就表示导出成功啦导入数据库和导入数据库一样,不要进入sql...原创 2019-10-14 14:12:30 · 284 阅读 · 0 评论 -
oracle分页查询的效率分析
ROWNUM可能都知道ROWNUM只适用于小于或小于等于,如果进行等于判断,那么只能等于1,不能进行大于的比较。ROWNUM是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推。ROWNUM总是从1开始,不管当前的记录是否满足查询结果,ROWNUM返回的值都是1,如果这条记录的值最终满足所有的条件,那么ROWNUM会递加,下一条记录的R转载 2017-06-26 16:04:43 · 4207 阅读 · 0 评论 -
Oracle 百万行数据查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及 orderby 涉及的列上建立索引。 2.应尽量避免在where子句中对字段进行 null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: selectid fromt wherenum isnull 可转载 2017-07-04 11:36:01 · 2547 阅读 · 0 评论 -
ORACLE多表查询优化
ORACLE多表查询优化ORACLE有个高速缓冲的概念,这个高速缓冲就是存放执行过的SQL语句,那oracle在执行sql语句的时候要做很多工作,例如解析sql语句,估算索引利用率,绑定变量,读取数据块等等这些操作。假设高速缓冲里已经存储了执行过的sql语句,那就直接匹配执行了,少了步骤,自然就快了,但是经过测试会发现高速缓冲只对简单的表起作用,多表的情况完全没有效果,例如在查询单表的时候转载 2017-07-04 11:35:27 · 361 阅读 · 0 评论 -
SQL中Charindex和Oracle中对应的函数Instr
sql :charindex('字符串',字段)>0 charindex('administrator',MUserID)>0Oracle:instr(字段,'字符串',1,1) >0 instr(MUserID,'administrator',1,1)>0 在项目中原创 2017-06-21 14:57:38 · 918 阅读 · 0 评论 -
PL/SQL中编写Oracle数据库分页的存储过程
其实 Oracle数据库的分页还是比较容易理解的。此文以Oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集。由于需要返回查询出来的结果集,需要在PL/SQL中创建一个package,这个包里面定义一个refcursor类型,用于记录sql语句查询出来的结转载 2017-06-17 10:33:49 · 784 阅读 · 0 评论 -
Oracle分页存储过程
--------以下为oracle通用分页存储过程代码,直接在oracle中执行即可。------------------------- ---------------------------------------- create or replace package package_page as type cursor_page is ref cursor;转载 2017-06-17 10:29:08 · 1323 阅读 · 0 评论 -
java 操作oracle的blob类型数据
保存clob字段,可以像这样: Clob clob=con.createClob(); clob.setString(1, new String(lineWKT)); pre.setClob(1, clob);读取clob 可以像这样:while(rs.next()){ Clob c=rs.getClob("WKT"); InputStream is=c.原创 2016-07-01 10:28:25 · 1289 阅读 · 0 评论 -
java 调用oracle的函数出现的问题
java调用oracle的函数出现,调不通的问题,java引用的jar包,ojdbc6.jar是oracle10的。ojdbc14.jar不能正常使用。原创 2016-06-30 15:24:43 · 512 阅读 · 0 评论 -
oracle全文检索功能
在对海量的文本数据进行搜索时,建议使用全文检索功能。创建全文索引环境1.在sysdba权限下验证是否有ctxsys用户和ctxapp角色:sql>select username from all_users;如果没有该用户,则需要打开dbca工具中选择configrue database options,然后选择所有数据库组件安装即可。2.用在sysdba权限下或ctx转载 2016-05-23 11:51:56 · 783 阅读 · 0 评论 -
解决ora-02429:无法用于删除强制唯一/主键的索引
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE1.1 描述操作系统:REDHAT 5.5数据库版本:11.2.0.3+asm+rac问题描述:使用drop index historysettlement.PK_TEST 删除一索引时,出现ora-02429: 无法用于删除强制唯一/主键的索引错误.SQL> d原创 2017-08-17 10:34:06 · 5942 阅读 · 0 评论 -
Oracle查看锁表与解锁方法
--查看select a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwaitfrom all_objects a,v$locked_object b,v$session c wherea.object_id=b.object_id andc.sid=原创 2017-08-15 13:24:51 · 432 阅读 · 0 评论 -
oracle触发器的启用和停用
1、禁用 table_name 表的所有 trigger ?1altertable table_name disable alltriggers;2、启用 table_name 表的所有 trigger ?1转载 2017-08-23 16:03:39 · 9367 阅读 · 0 评论 -
PIVOT函数与UNPIVOT函数的运用
PIVOT用于将行转为列,完整语法如下:TABLE_SOURCEPIVOT(聚合函数(value_column)FOR pivot_columnIN(<column_list>))UNPIVOT用于将列转为行,完整语法如下:完整语法:TABLE_SOURCEUNPIVOT(value_columnFOR pivot_columnIN(<column_li...转载 2019-06-28 10:14:12 · 5535 阅读 · 0 评论 -
Oracle表中添加外键约束
添加主键约束:ALTER TABLE GA_AIRLINE ADD CONSTRAINT PK_AIRLINE_ID PRIMARY KEY(AIRLINE_ID); 有三种形式的外键约束:1、普通外键约束(如果存在子表引用父表主键,则无法删除父表记录)2、级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除)3、置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父...原创 2018-05-30 10:33:38 · 952 阅读 · 0 评论 -
oracle的加密和解密
oracle的加密和解密加密函数create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_text varchar2(4000);v_enc varchar2(4000);raw_input RAW(128) ;key_input RAW(128) ;decrypted_r...原创 2018-02-23 15:24:31 · 1793 阅读 · 0 评论 -
oracle实现 无则insert插入,有则update更新,一条语句直接进行insert/update操作
merge into应用:实现 无则insert插入,有则update更新,一条语句直接进行insert/update操作merge ino语法: MERGE INTO table1 alias1 USING (table2|view2|sub_query2) alias2 ON (join condition)原创 2017-11-28 10:28:59 · 14186 阅读 · 0 评论 -
Oracle 增加修改删除字段与添加注释
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);删除字段的语法:alter tab原创 2017-11-21 14:56:18 · 4350 阅读 · 0 评论 -
给Oracle的数据添加默认值
alter table table_name modify column_name default 0;原创 2017-10-10 12:42:24 · 5974 阅读 · 1 评论 -
批量执行oracle的function
END;/CREATE OR REPLACE FUNCTION END;/CREATE OR REPLACE FUNCTION 必须在函数之间加/符号原创 2017-09-22 15:14:13 · 844 阅读 · 0 评论 -
grant execute on FUN to USER;
grant execute on FUN to USER;原创 2017-09-19 12:59:36 · 3091 阅读 · 0 评论 -
oracle修改分区表
alter table TEL_SEGMENT_TT drop partition TTS_HEILONGJIANG;alter table TEL_SEGMENT_TT add partition TTS_HEILONGJIANG values('黑龙江') tablespace TSP_HEILONGJIANG;原创 2016-05-31 17:30:49 · 2315 阅读 · 0 评论 -
oracle分区表的测试
INSERT into TEL_SEGMENT_TT(TEL,PROVINCE,CITY,"OPERATOR")VALUES('asdasddgff','北京','北京','中国移动')INSERT into TEL_SEGMENT_TT(TEL,PROVINCE,CITY,"OPERATOR")VALUES('asdasddgff','上海','上海','中国联通')SE原创 2016-04-20 10:13:44 · 415 阅读 · 0 评论 -
oracle批量更新
UPDATE t set t.m = (SELECT a.m FROM a WHERE a.n = t.n);--检查错误方法SELECT a.n, COUNT(1) FROM a, t WHERE a.n = t.n GROUP BY a.nHAVING COUNT(1) > 1;--修改方法考虑业务逻辑UPDATE t set t.m = (SELEC原创 2016-02-16 11:09:36 · 449 阅读 · 0 评论 -
oracle批量更新一个表中的一个字段
最近遇到一个sql问题。老大们让我把一个表中的一列数据做更新。更新的内容和对照表有给提供。后来仔细查看资料 总结出这样的sql语句。update 更新表 b set(b.需要更新的字段) = (select a.参考更新字段 from 对照表 a where a.对照表旧字段=b.更新表需要更新的字段)注意:一定要用where条件。 这个sql的意思试试活把b表的需要原创 2016-02-16 09:59:50 · 4445 阅读 · 0 评论 -
自定义聚集函数,仿wm_concat,使用CLOB,可处理超过4000长度字符串
因开发需要,在使用wm_concat函数时,在字符串长度超过4000后报错,所以自定义一个类似的聚集函数,在内部使用CLOB处理,避免超长问题。源码如下:先以sys用户授权:grant execute on dbms_lob to xxx;CREATE OR REPLACE TYPE typ_concat_clob AS OBJECT(原创 2016-02-02 13:36:38 · 1196 阅读 · 0 评论 -
oracle top newid()
SELECT * FROM "dizhi" where ROWNUM<1001 ORDER BY SYS_GUID()原创 2016-02-01 17:31:06 · 625 阅读 · 0 评论 -
加解密方法
public string Encry_Tel(string tel) { try { string result = ""; string strcn = System.Configuration.ConfigurationSettings.AppSettin原创 2016-03-02 15:12:02 · 487 阅读 · 0 评论 -
oracle的序列使用注意
oracle使用序列的时候不能和new sysguid()一起使用。原创 2016-02-15 12:52:13 · 453 阅读 · 0 评论 -
oracle的select into from
create new_table as select * from table;原创 2016-02-14 16:47:00 · 696 阅读 · 0 评论 -
oracle的oraclebulkcopy的使用
安装了Oracle之后,都会安装上它提供的.net Provider .主要是在Oracle.DataAccess.dll这个动态库中。虽然说微软在.net框架中自带了一个System.Data.OracleClient.dll,不过我觉得功能上面远没有oracle自己提供的功能多。就拿我最近的一个需求来说的话,大量数据往Oracle中写入,还可能涉及到插入或者更新的问题。之前微软在System转载 2016-02-05 13:29:18 · 3315 阅读 · 1 评论 -
挑战极限 Oracle数据库一秒导百万数据
挑战极限 Oracle数据库一秒导百万数据2010年09月07日13:42 来源:李鸣的博客 作者:李鸣 编辑:胡铭娅 评论:2条 本文Tag: Oracle .NET c# 【IT168 技术文档】.Net程序中可以通过ODP调用特性,对Oracle数据库进行操作,今天来讲一下数据批量插入的功能,所用技术不高不深,相信很多朋友都接触过,小弟班门弄斧了,呵呵。这篇文章是上篇文章的续转载 2016-02-05 11:30:19 · 1059 阅读 · 0 评论 -
C#调用Oracle存储过程
1.创建表create table test(ID number,NAME varchar2(10),SEX varchar2(4),AGE number,ADDRESS varchar2(200));2.创建不带参数的存储过程create or replace procedure proc1isbegin insert into test(原创 2016-01-28 17:29:35 · 579 阅读 · 0 评论 -
C#对Oracle存储过程的调用
--创建表declare num number; begin select count(1) into num from user_tables where table_name='SRCT'; --判断当前要创建的表在数据库中是否存在.if num>0 then execute immediate 'drop table '||'SRCT'; --表名要大写end i原创 2016-01-28 17:27:44 · 1129 阅读 · 0 评论