Oracle学习
北环阳光
这个作者很懒,什么都没留下…
展开
-
解压版oracle客户端和PLSQL,登录时,数据库下拉框没有内容,如何处理
打开PLSQL,tools-->Preferences,将Oracle Home路径指定为Oracle Client目录(D:\instantclient_12_1),OCI Libaray路径为Oracle Client目录的oci.dll(D:\instantclient_12_1\oci.dll)。保存后,重启plsql,登录框出现了下拉选项,问题解决。可能与我的OS是WIN7有关,配置过环境变量后重启多次仍无效。原创 2023-02-16 14:28:09 · 1221 阅读 · 1 评论 -
Oracle通过DBLINK访问Mysql库日期型字段出现乱码的处理
Oracle通过DBLINK访问Mysql库日期型字段出现乱码的处理原创 2023-02-16 11:56:17 · 611 阅读 · 0 评论 -
oracle 如何导出表名、字段定义、字段注释
【代码】oracle 如何导出表名、字段定义、字段注释。原创 2022-10-15 14:42:51 · 1855 阅读 · 0 评论 -
ORACLE 字母大小写转换函数
【代码】ORACLE 字母大小写转换函数。原创 2022-09-24 14:13:21 · 1048 阅读 · 0 评论 -
关于oracle 12c两个版本的差异
近期项目组需要将开发库结构和数据迁移到客户方的服务器上,开发库oracle版本信息如下: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production客户方服务器oracle版本信息如下:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production部分表结构在迁移过程中出现了以下问题:sql 错误: ora-00972: 标原创 2022-06-07 12:26:09 · 1628 阅读 · 0 评论 -
JAVA查询Oracle数据库集群连接字符串
JAVA查询Oracle数据库集群连接字符串事件: 报表接口数据库突然无法连接 ,导致无法正常取数操作。异常信息: Io 异常: Got minus one from a read call分析: 数据库地址及其配置信息都为发生变化 , 经询问后得知数据库调整为集群工作方式 . 结果: 1. 修改普通 JDBC 连接字符串为集群工作方式。2. 接口中的转载 2016-12-07 12:42:55 · 2006 阅读 · 0 评论 -
关于:ORA-02069: global_names parameter must be set to TRUE for this operation
以如下环境为例子:数据库A :global_name为 OrcA数据库B :global_name为 OrcB 在OrcA中建立dblink连接到OrcB,dblink命名为to_OrcB; 在OrcB中创建表T,拥有一个number的id字段; 在OrcA中创建sequence(seq_1);并创建一个function(fun_1),fun_1仅返回1;来看转载 2016-11-22 16:12:30 · 2536 阅读 · 0 评论 -
oracle 通过脚本创建dbLink
创建脚本如下:CREATE PUBLIC DATABASE LINK db1 CONNECT TO username IDENTIFIED BY password USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.98)(PORT = 1521)))(CONNECT原创 2016-11-22 15:14:49 · 2249 阅读 · 0 评论 -
当导入dmp文件时,发现报错时,可能是由于表空间不足造成的,查询与增加oracle 表空间的方法如下
1、查询表空间大小select b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes / 1024 / 1024 大小M, (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M, substr((b.bytes - sum(nvl(a.转载 2016-07-06 12:35:18 · 2536 阅读 · 0 评论 -
ORA-06413:连接未打开错误
ORA-06413 Connection not open.Cause: Unable to establish connection.Action: Use diagnostic procedures to ascertain exact problem错误描述: 用ORACLE的连接工具里可以连接,在控制台用sqlplus是可以连接的,用Delphi 7.0开发的测试连接程序测转载 2011-12-13 16:16:52 · 3818 阅读 · 0 评论 -
为在用项目的oracle数据库增加表空间
由于历史原因,初期建表时全部使用默认表空间“”users“”,后来随着表结构越来越多及数据量越来越大,发现表空间占用率已达到94%多,可通过以下语句查询出来:SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (1024 * 1024 * 10原创 2016-12-21 10:13:55 · 616 阅读 · 0 评论 -
通过exp再imp后,提高了fsfi值和oracle的响应速度
最近发现一个运行了近五年的oracle数据库响应速度越来越慢,一开始怀疑是程序的问题,对一些程序优化过后,并没有明显改善,网上查询相关资料,了解到oracle表空间如果存在大量碎片,也会导致oracle效率降低,通过以下脚本查询得到碎片fsfi 值select tablespace_name,sqrt(max(blocks)/sum(blocks))* (100/sqr原创 2017-01-20 12:08:02 · 883 阅读 · 0 评论 -
Oracle索引或这类索引的分区处于不可用状态 查询
ORA-01502: 索引或这类索引的分区处于不可用状态原因: 出现这个问题,可能有人move过表,或者disable 过索引。1. alter table xxxxxx move tablespace xxxxxxx 命令后,索引就会失效。2. alter index index_name unusable,命令使索引失效。解决办法:1. 重建索引才是解决这类问转载 2017-01-20 21:02:20 · 10454 阅读 · 0 评论 -
oracle 表碎片太多的处理办法
某张结果表在etl过程中频繁的被dml语句操作,导致整个表的碎片激增。原来7g多的空间经过一段时间的运行增长至80g。。。。。汗 通过move的方式来解决该办法,在网上搜罗了一些操作说明,供参考 一、碎片程度查看在没有toad的情况下可以通过如下语句: select tablespace_name,count(tablespace_name) from dba_free_space转载 2017-01-20 22:00:49 · 6307 阅读 · 0 评论 -
oracle 查询对应表空间里面存储的表,以及更换表的表空间
oracle 查看表空间有哪些表select * from dba_tables wheretablespace_name='表空间名',注意表空间名大小写敏感。select table_name,tablespace_name from user_tables;from http://www.cnblogs.com/xd502djj/archive/2010/11/2转载 2017-03-01 11:38:03 · 1053 阅读 · 0 评论 -
oracle11g更改字符集AL32UTF8为ZHS16GBK
注:导入dmp时,常常报ORA-12899错误,其实往往是因为导出和导入的字符集不一致造成的。Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character set conversion may cause unexpected results. Not转载 2017-03-20 20:46:01 · 3736 阅读 · 0 评论 -
oracle a表 左连接 b表,b表中存在多条记录,只返回一条记录的处理
最近项目中出现这样的情况,TestA 表左连接 TestB表,前台查询结果显示出现多条重复记录,经查询数据库得知,TestB中确实有符合条件的记录。原脚本如下:select t1.*,t2.*from TestA t1 left outer join TestB t2 on t1.ch = t2.ch and t2.DateTime >= '2017032000000原创 2017-03-29 17:13:24 · 7519 阅读 · 0 评论 -
oracle中job的interval设置方法
INTERVAL参数值每天午夜12点 'TRUNC(SYSDATE + 1)'每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'转载 2014-03-18 15:07:00 · 15210 阅读 · 0 评论 -
Oracle 修改sessions和processes
先备份spfile1.通过SQLPlus修改Oracle的sessions和processes的关系是sessions=1.1*processes + 5使用sys,以sysdba权限登录:SQL> show parameter processes;NAME TYPE VALUE------------------------------------ ---------转载 2012-09-13 21:16:26 · 3245 阅读 · 0 评论 -
Oracle中Union与Union All的区别
转自:http://www.cnblogs.com/single-jun/articles/1972612.html 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。union和union all的区别是,union会自动压缩多个结果集合中的重复结果转载 2012-07-30 16:12:09 · 835 阅读 · 0 评论 -
oracle 11g 新特性【BUG】 给exp/imp带来的郁闷
今天凌晨在客户现场进行一个Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息:【ORACLE 11G在用EXPORT导出时,空表不能导出。11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1、insert一行,再rollback就产生segment了。 该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。 2、设置deferred_segment_creation转载 2011-02-09 17:19:00 · 1315 阅读 · 0 评论 -
Oracle中NULL的注意事项和用法
最近在论坛上经常看到,很多人提出和NULL有关的问题。NULL其实是数据库中特有的类型,Oracle中很多容易出现的错误都是和NULL有关的。打算简单的总结一下NULL的相关知识。这一篇主要打算NULL的基础概念和由来,并介绍对NULL的操作的基本特点。NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,NULL并不是一个确定的值。这是NULL的由来、也是NULL的基础,所有和NULL相关的操作的结果都可以从NULL的转载 2011-02-10 15:23:00 · 2029 阅读 · 0 评论 -
oracle exp/imp
<br />可以通过在命令行输入 imp help=y 获取imp的语法信息:<br />=============================================================================<br /> C:/Documents and Settings/auduser>imp help=y<br /> Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008<br /> (转载 2011-02-09 14:41:00 · 659 阅读 · 0 评论 -
Oracle 日期函数大全
<br />oracle 日期函数网上已经有了不少,特我们跟集中一下,免得大家麻烦。<br />在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此。乃供他日所查也。 <br />1、add_months(d,n) 日期d加n个月 <br /> SQL> SELECT SYSDATE AS This_Day,add_months(SYSDATE,1) AS Next_Day FROM dual;<br /> THIS_DAY NEXT_DAY<br转载 2011-03-08 10:31:00 · 1146 阅读 · 0 评论 -
Oracle中TO_DATE格式
<br />TO_DATE格式(以时间:2007-11-02 13:45:25为例)<br />Year: <br />yy two digits 两位年 显示值:07<br />yyy three digits 三位年 显示值:007<br />yyyy four digits 四位年 显示值:2007<br />Month: <br />mm number 两位月转载 2011-03-08 10:27:00 · 464 阅读 · 0 评论 -
ORACLE IF ELSEIF的写法
ORACLE不同其他sql语法,其中一点就很明显,也是让人郁闷的地方,就是ORACLE的IF ELSEIF语法,ORACLE的这个语法是这样的:IF XXX ELSIF XXX END IF;,注意红色加粗部分,这里和其他数据sql语法不同,少了个E,我想ORACLE公司不可能不知道这个问题,估计就是特意这样做的,以区别其他数据库,哎~原创 2011-03-08 10:29:00 · 10469 阅读 · 0 评论 -
Oracle 存储过程
<br />转自:http://1zebra.javaeye.com/blog/427262<br /> <br />1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。 <br />2、什么时候需要用存储过程 <br /> 如果服务器定义了存储过程,应当根据需要决定是否要转载 2011-03-19 11:12:00 · 480 阅读 · 0 评论 -
Oracle 存储过程
<br />转自:http://1zebra.javaeye.com/blog/427262<br /> <br />1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。 <br />2、什么时候需要用存储过程 <br /> 如果服务器定义了存储过程,应当根据需要决定是否要转载 2011-03-19 11:13:00 · 396 阅读 · 0 评论 -
Oracle 存储过程
<br />转自:http://1zebra.javaeye.com/blog/427262<br /> <br />1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。 <br />2、什么时候需要用存储过程 <br /> 如果服务器定义了存储过程,应当根据需要决定是否要转载 2011-03-19 11:13:00 · 424 阅读 · 0 评论 -
oracle的dbms_output
<br />oracle的dbms_output的两个小问题<br /> <br /> <br />1、如果dbms_output.put_line的内容不能显示,需要在命令行中先敲入set serveroutput on;只要敲一遍就好,之后dbms_output.put_line的内容就能显示出来了;<br />2、dbms_output.put_line每行只能显示255个字符,超过了就会报错,报错内容如下<br /> ORA-20000: ORU-10028: line length ov转载 2011-03-18 09:04:00 · 1434 阅读 · 0 评论 -
Oracle存储过程返回结果集
注意:以下测试是在sql plus中进行的 ,而非pl/sql。这里以Oracle的scott/tiger作为示例数据表,Oracle通过返回REF CURSOR来返回结果集。1.创建包:Sql代码 1 CREATE OR REPLACE PACKAGE TYPES AS 2 TYPE BJ_CURSOR IS REF CURSOR; 3* END; SQL> / 程序包已创建。 1 CREATE OR REPLACE PACKAGE TYPES AS转载 2011-03-18 16:00:00 · 1707 阅读 · 0 评论 -
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
同事在测试环境修改一个表的字段长度时,抛出ORA-00054的错误SQL> alter table prp_emp modify(ename varchar2(20));alter table prp_emp modify(ename varchar2(20))ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效很明显这张表被锁了,我让他过两分钟在试试。可过了一会去执行还是抱同样的错。只能去看看谁锁住这张表了。SQL> SELECT /*+ rule */ 2转载 2011-03-23 13:52:00 · 2966 阅读 · 0 评论 -
处理超出打开游标的最大数异常(ORA-01000: maximum open cursor )
修改Oracle 游标方法:打开sqlplus-->登录--->sql>show parameter open_cursors; //用于显示当前设置的游标数sql>alter system set open_cursors=200; //设置游标数为200;sql>commit; //提交 以下转自:http://www.turingedu.co原创 2011-06-07 15:06:00 · 1202 阅读 · 0 评论 -
Oracle 根据表名 查询到表空间名 再根据表空间名查找到存储路径
先以建表时的用户登录,然后 select TABLE_NAME,TABLESPACE_NAME from user_tables where table_name = '你的表名'; (如果你这个用户的表不多可以不加where条件)再用SYSDBA权限登录数据库,select file_name ,TABLESPACE_NAME from dba_data_files where TABLESPA原创 2011-12-08 16:49:14 · 4973 阅读 · 0 评论 -
ORA-12516 解决方法
转自:http://tianzt.blog.51cto.com/459544/203699 oracle服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。 a.select count(*) from v$process;转载 2011-12-17 00:19:04 · 691 阅读 · 0 评论 -
IMP-00009: 导出文件异常结束
导入时出现IMP-00009: 导出文件异常结束IMP-00020: 用于列缓冲区大小 (7) 的长整数列过大IMP-00018: 上一个表的部分导入已完成: 已导入 50838 行成功终止导入,但出现警告。请问怎么解决------解决方法--------------------------------------------------------原因是你导出的数据表转载 2012-07-09 15:13:31 · 8980 阅读 · 0 评论 -
oracle case when then 条件判断
<br />select (case when 1=1 then 1 else 2 end) from dual;<br />select<br />(case when (6-4)=1 then 1 <br /> when (6-5)=2 then 2 <br /> else 2<br />end) <br />from dual;<br /> <br /> <br /> <br /> <br />select decode(3-1,2,1,3) from dual;<br原创 2011-01-30 09:18:00 · 8697 阅读 · 0 评论