Oracle
gdjlc
这个作者很懒,什么都没留下…
展开
-
Oracle wm_concat函数排序的解决方法
默认情况下,使用wm_concat和group by拼接字段时,拼接的字段顺序是无规则的。创建测试数据:create table tb( seq number(10), remark varchar2(100), createtime date);insert into tb(seq, remark, createtime)select 1, '说明1', to_date('20210101','yyyymmdd') from dualunion allselec.原创 2021-03-21 08:43:18 · 6908 阅读 · 1 评论 -
ORACLE数据库逐步解决ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA00132的过程
刚开始时,有一台服务器的ORACLE 11G数据库连接不上,报错:ORA-12541:TNS:无监听程序重启服务里面的两个Oracle服务,都没解决。在网上看到一篇文章说另一种可能是oracle目录目录下listener.log日志文件过大(达到4G,据说这是oracle在windows系统下的bug)导致的。搜索找到listener.log,果然文件已经是4GB。于是停止服务里面的Oracle监听服务,重命名listener.log做备份,例如listener.log.bak。启动Oracle监原创 2021-03-21 08:32:18 · 156 阅读 · 0 评论 -
Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”。想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5。一、最终实现的sql语句1、获取交集(相同值):select regexp_substr(id, '[^,]+', 1, rownum) idfrom (select '1,2,3,5' id from d...原创 2019-10-23 09:27:48 · 1360 阅读 · 0 评论 -
oracle的loop等循环语句的几个用法小例子
--loop循环用法 (输出1到10)declare v_num number(2) := 0;begin loop v_num := v_num + 1; exit when v_num > 10; --上面退出循环也可以用下面3行 /* if(v_num > 9) then exit; end if;*/ dbms_原创 2017-03-20 14:23:02 · 30562 阅读 · 0 评论 -
记一次oracle创建一个新数据库,并导入正式环境数据库备份的dmp包过程
背景:正式环境oracle数据库定时用exp备份一个dmp包,现在打算在一台机器上创建一个新数据库,并导入这个dmp包。1、创建数据库 开始 -> 所有程序 -> Oracle -> 配置和移植工具 -> Database Configuration Assistant,打开图形化界面,大部分都是默认的下一步操作,有几个地方需要输入: (1)其中要输入“全局数据库原创 2017-06-01 12:01:29 · 3547 阅读 · 0 评论 -
PL/SQL Developer几个使用小技巧
1、选中sql语句的当前行鼠标连续点击所在行3次。2、记住登陆密码工具 -> 首选项 -> Oracle -> 登录历史,勾选“带口令存储”。3、查看Oracle的tnsnames.ora内容帮助 -> 支持信息 -> TNS名4、PL/SQL美化器使用默认点击工具栏“PL/SQL美化器”后,有些sql语句如decode里面的判断值太多个,则会换成多行显示,原创 2017-06-07 09:31:32 · 1632 阅读 · 0 评论 -
用dbms_scheduler创建job
以前一般使用dbms_job来创建job,oracle10g以后推荐使用dbms_scheduler来创建定时任务,dbms_scheduler功能更为强大。一个创建job的例子:begin sys.dbms_scheduler.create_job(job_name => 'CMDEV.每天执行某件事',原创 2017-06-01 10:05:11 · 857 阅读 · 0 评论 -
Oracle闪回查询
Oracle数据库有时候不小心删除掉数据,想查询这些数据,或者恢复数据,就可以使用带有as of子句的select语句进行闪回查询。原创 2017-11-07 09:44:51 · 6983 阅读 · 0 评论 -
Oracle用户被锁定解决方法
解决方法:1、用dba角色登陆;2、输入下面格式命令解锁:alter user 用户名 account unlock;3、如果密码忘记了,输入下面格式命令修改密码:alter user 用户名 identified by 新密码;以下为实例,解锁用户dev,修改密码为123456--------------------------------------------原创 2018-01-12 14:19:50 · 831 阅读 · 0 评论 -
.net连接Oracle
通过网上了解到.net连接Oracle主要有3种方法。(1)System.Data.OracleClient微软的System.Data.OracleClient可以直接引用,但是VS会提示“System.Data.OracleClient.OracleConnection”已过时。(2)Oracle.DataAccess.Client也叫ODP.net,是Oracle提供的数据库访问类库...原创 2019-06-03 09:40:37 · 2910 阅读 · 0 评论 -
PLSQL连接oracle数据库
换电脑,重新装了PLSQL,连接oracle数据库。1、下载Instant Client,下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html本人刚好有之前版本,路径为 E:\Program Files\instantclient_10_22、打开PLSQL,点取消,然后弹出P...原创 2019-07-18 09:12:55 · 746 阅读 · 0 评论 -
Oracle数据库创建只读用户
创建一个只读用户user2,只能查询管理员用户user1下的表,不能增删改。操作环境:PL/SQL Developer1、用管理员用户user1登录,创建用户user2、并授权--创建用户user1,密码123456create user user2 identified by 123456;--授权grant connect to user2;grant create sy...原创 2019-10-11 18:12:23 · 1052 阅读 · 0 评论 -
Oracle创建数据库
Oracle创建数据为有三种方式:一、使用DBCA(Database Configuration Assistant 数据库配置助手);二、使用 create database指令;三、在安装数据库软件时创建数据库;原创 2016-12-11 23:52:40 · 914 阅读 · 0 评论 -
Oracle数据库体系结构、启动过程、关闭过程
一、Oracle数据库体系结构体系结构由下面组件组成:1、Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1)数据库实例(Instance) 数据库实例由一些内存区和后台进程组成。 (a)内存区:共享池、数据库高速缓存、重做日志缓存、流池以及其他可选内存区原创 2016-12-11 23:57:25 · 456 阅读 · 0 评论 -
oracle的imp导入时覆盖目标数据库
背景:oracle正式库通过exp命令导出的dmp备份包,现在通过imp命令还原到测试库,测试库上面的表数据全部不要,要用新的。方法:先删除用户、用户所在表空间,再新建用户和表空间,再imp导入。过程:1、用plsql查看用户的权限等信息并备份,例如-- Create the user create user testuser;-- Grant/Re原创 2016-12-10 13:49:03 · 29544 阅读 · 0 评论 -
.net 调用Oracle存储过程
1. Oracle存储过程: 可以先创建一个通用的包,再创建存储过程:--创建包create or replace package pkg_empas type result_type is ref cursor;end pkg_emp;--创建存储过程create or replace procedure getEmpData( p_sursor ou原创 2013-01-28 23:37:29 · 1037 阅读 · 0 评论 -
ORACLE sql 判断字段中某个字符出现次数
select * from 表 where length(字段)-length(replace(字段, '字符', ''))=1 --出现1次原创 2013-01-14 10:38:41 · 8234 阅读 · 0 评论 -
oracle sqlplus一些命令
1.默认账户scott的解锁cmd命令行下输入sqlplus,在“请输入用户名”后面输入命令: conn sys/sys as sysdba(用超级管理员登录),解锁scott:alter user scott account unlock;2.显示当前用户:show user;3.切换用户:conn scott/tiger;4.查看当前用户下所有表名:原创 2012-11-04 23:15:01 · 704 阅读 · 0 评论 -
PL/SQL developer 显示所有数据
英文版的:Edit--PL/SQL Beautifier Options--Window Types--SQL Window--Records per Page--All records原创 2010-01-20 14:31:00 · 2138 阅读 · 0 评论 -
Oracle 伪列、取前几条记录、日期判断、触发器等
从表中随机取4条记录:select * from (select * from 表 order by dbms_random.random) where rownum 伪列2type:select * from (select ai.activityId,ai.owner,ai.creatorName, ai.subject,ai.createDate,2typefrom Acti原创 2010-06-17 12:14:00 · 1760 阅读 · 0 评论 -
一个Oracle循环例子
DECLARE v_index NUMBER(2); v_tmp VARCHAR2(10); v_month VARCHAR2(10); v_yearmonth VARCHAR2(10); v_result VARCHAR2(50); v_year VARCHAR2(10); v_maxMonth NUMBER(2);BE原创 2014-03-12 16:40:51 · 1219 阅读 · 0 评论 -
Oracle修改字段类型方法总结
Oracle修改字段类型有一个表名为tb,字段段名为name,数据类型nchar(20)。1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar2(20));2、假设字段有数据,则改为nvarchar2(20)可以直接执行:alter table tb modify (name n原创 2014-04-15 15:24:55 · 214018 阅读 · 12 评论 -
oralce一些系统表整理
--查看用户下所有的表select * from user_tables;--查看用户下所有的表的列属性select * from USER_TAB_COLUMNS where table_name=upper(':table_name');--查看某表的创建时间select object_name,created from user_objects where object_nam原创 2014-06-06 14:02:48 · 1064 阅读 · 0 评论 -
测试oracle数据库的脱机备份和恢复
oracle数据为脱机备份步骤:1、记录所要备份数据库文件、参数文件等所在的操作系统路径;2、关闭数据库,不要使用shutdown abort这种关闭方式;3、拷贝数据库文件到备份目录中;4、重启数据库,完成备份。原创 2016-10-19 16:01:01 · 1357 阅读 · 0 评论 -
plsql 登录后,提示“数据库字符集(AL32UTF8)和客户端字符集(2%)是不同的”解决方法
解决方法:运行--regeidt-,打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb10g_home1的NLS_LANG 键,修改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8重启plsql,提示消失。原创 2016-11-14 11:40:05 · 8262 阅读 · 3 评论 -
oracle更改用户名
例如,用户名test1改为test2,在plsql界面中不支持直接更改用户名,只能通过sql更改1、查询系统user$中的user#值 select user#,name from user$ where name = 'test1';2、根据user#值,更改用户名 update user$ set name='test2' where user#=68;3原创 2016-12-10 13:45:19 · 6063 阅读 · 0 评论