Oracle使用记录】的更多相关文章

项目中oracle存储过程记录--经常使用语法备忘 项目中须要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.当中原表之中的一个的日期字段是timestamp类型,目标表的字段是varchar2类型: 当中一些内容非经常常使用,所以做下记录,供查找. 1.存储过程的格式 oracle存储过程和函数都能够实现,一般没有返回值.则採用存储过程,函数比sqlserver的功能强大. oracle变量定义最好加上前缀如V_.查询条件中变量名称…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用…
记录通过执行Oracle的执行计划查询SQL脚本中的效率问题   问题现象: STARiBOSS5.8.1R2版本中,河北对帐JOB执行时,无法生成发票对帐文件.   首先,Quartz表达式培植的启动时间为2分钟执行一次JOB,通过日志上看,该JOB已经启动.且在开始统计发票信息后就没有新的日志了,因河北广电数据库很大,猜测是统计发票的SQL 效率低.在比较小的库上执行,系统正常生成发票对帐文件,因此确认猜测为正确的.   然后,将发票统计的SQL截取出来,其中一个SQL如下: select…
经过前面的了解,现在想用C语言来编程了,搜索了很多东西,后来决定先用Pro C来进行学习 在安装完Oracle数据库后就可以进行编程了,里面有一个命令proc就是对程序进行预编译的. 在这记一下,这是一个学习PL/SQL的网站,挺好的 http://www.cnblogs.com/huyong/archive/2012/07/30/2614563.html 创建用户是 create user xx identified by xx account unlock; grant connect, r…
我们可以使用 Oracle Audit 函数来记录用户登录信息,但是如果开放了 Audit 函数将会使 Oracle 性能下降,甚至导致 Oracle 崩溃.那我们如何才能记录用户登录信息呢?其实我们可以通过建立触发器的方式来实现.方法如下: 1. 用 sys 用户登录 Oracle2. 创建记录用户登录信息的表CREATE TABLE LOG$INFORMATION (    ID        NUMBER(10),    USERNAME  VARCHAR2(30),    LOGINTI…
今天需要向一个没有接触过的一个Oracle数据库中添加一条记录,执行报错: 分析: 报错的根本原因:未找到父项关键字的原因是因为你在保存对象的时候缺失关联对象. 问题的解决思路:先保存关联对象后再保存该对象就可以解决了. 问题的解决方案:先存关联的对象,再建立关系,再保存此对象,就可以解决. 根据以上的分析,查看需要查看该表的DDL语句: 发现建表语句中有这样一条指令:   alter table T_GATEWAY_CHANNEL_IP  add constraint FK_GATEWAY_C…
最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System.Data.OracleClient 这个 Data Provider 的研发,从 .NET 4 以后的版本,会将该类库移除.所以决定采用Oracle 自家的解决方案 ODP.NET; 目前ODP.NET最新版本为12.1.0.1.0(开发跟部署机器都要安装);下载地址[http://www.ora…
oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id…
1.current_date与sysdate区别 在oracle中current_date与sysdate都是显示当前系统时间, 其结果基本相同,但是有三点区别:a. current_date返回的是当前会话时间,而sysdate返回的是服务器时间.b.current_date有时比sysdate快一秒,这可能是四舍五入的结果.c. 如果修改当前会话的时区,比如将中国的时区为东八区,修改为东九区,则current_date显示的时间为东九区时间, 根据东加西减的原则,current_date应该…
应用场景 在查询oracle表时,提示表记录被另一个用户锁住了 有可能是在使用了pl/sql工具后修改某个表记录时,加锁,或者发生故障异常退出,下次登录进去修改不了 查询锁 --查看数据库的锁的来源.类型等 select t.object_id, t.session_id, t.locked_mode from v$locked_object ; 查询锁与session连接 --查询 锁与session连接 用户名.serial#.时间select s.username, s.sid, s.se…
1.连接数据库的方式 sqlplus system/system@127.0.0.1:1521/orcl #远程用户名密码连接 sqlplus dbsnmp/oracle; #本地用户名密码连接 sqlplus /nolog #本地无登录连接 sqlplus / as sysdba #本地以超管权限连接 sqlplus "sys/oracle as sysdba" 2.数据库字符集的设置与查看(Oracle数据库自带自动转码功能) 若数据库的字符集为gbk,则为了数据能正确的存储与查看…
一.前言 oracle这么一个庞大的东西,出点问题真是太常见了.开个博客,用于记录遇到的问题吧. 持续更新. 二.问题列表 归档日志满,引起的问题. 一台服务器,用了很久了,某天,出现了磁盘空间占满的问题,发现是大量的trc.trm文件.至于为啥会有大量的此类文件呢,因为归档日志空间满了. 后面dba使用rman删除了多余的归档日志,即恢复了. 优先查看trace下面的log文件(C:\app\Administrator\diag\rdbms\scm\scm\trace): 参考:https:/…
1. Oracle的replace函数与translate函数 replace函数是在字符串级别的代替,对应字符串一一替换 SQL> SELECT REPLACE('accd','cd','ef') from dual; REPLACE('ACCD','CD','EF') ------------------------- acef translate函数是在字符级别的代替,对应字符一一替换   translate(expr,from_string,to_string)  SQL> selec…
--建立错误日志表 create table PUB_PROC_ERR_LOG ( LOG_ID NUMBER, MODULE_NAME ), PROC_NAME ), ERR_TIME DATE, SQL_CODE ), SQL_ERRM ), ERR_CONTENT ) ); comment on column PUB_PROC_ERR_LOG.LOG_ID is '主键'; comment on column PUB_PROC_ERR_LOG.MODULE_NAME is '模块名称';…
查看数据库实例名(SERVICE_NAME): sql: select instance_name from v$instance; 如何知道oracle客户端是32位还是64的.windows下启动sqlplus, 看到是sqlplus32即32位,看到sqlplus即是64位.PL/SQL在64为客户端不可用,要换回32位的 查看自己操作过的sql语句历史记录: select * from v$sql 复制一个表的内容到另一个表上面: insert into table(要插入数据的表) s…
昨天oracle密码搞忘记了,根据网上方法弄了不管用,索性直接删掉数据库,然后重建,再次登陆的时候既然报错, 说我适配器错误,我靠,这是闹哪样,找了好多方法,都解决不了. 然后上班问一个oracle大神,然来是我第二次建立的数据库名字和第一次不一样,会出现这种错误,我晕~ 只有重新再建立一次罗~ 然后在sqlplus中出现乱码情况,提示语都是问号用下面的语句轻松解决 SET NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK 最后就是登陆的问题了 下面的语句搞…
第一章 安装数据库软件 1.1 修改密码及创建目录和权限 创建oracle用户和组 创建相关目录并赋权 1.2 设置oracle用户环境变量 ORACLE_BASE:产品基目录 ORACLE_HOME:数据库产品目录通常情况下HOME目录是BASE的子目录 ORACLE_SID:操作系统和oracle实例关联的纽带 PATH:将安装后的oracle命令追加到执行搜索路径 LD_LIBRARY_PATH:动态库的位置 1.3 上传到oracle安装介质 1.4 安装软件 在oracle用户下,执行…
我们都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢? 有两种思路: ①    利用trigger,后面就是这种方式 ②    利用 DBMS_SESSION 过程包. BEGIN DBMS_SESSION.set_identifier(SYS_CONTEXT('USERENV', 'IP_ADDRESS')); END; 下面我们通过触发器来实现: create or replace trigger on_logon_trigger aft…
通过goldengate,可以实现目标表和源表不同结构之间的实时复制,包括记录源系统所有表的变更操作,供ETL或其它审计系统使用. 记录信息包括表名.操作时间.操作SCN,事务标记,操作类型到一个流水表.用于后续ETL处理过程中的按序处理. 创建日志记录表 create table odi.odi_trans ( id int primary key, tb_name varchar(100), commit_tm timestamp, op_type varchar(50),         …
开发中偶尔需要新增一条记录或修改一条记录的几个字段,语法中有微妙的区别. 由于不是经常写,久不写就忘记了,而又要重新查找或调试. 新增记录语法: --新增记录(仿照已有表记录)INSERT INTO T_XXXX T (T.FIELD_1, T.FIELD_2, T.FIELD_3, T.FIELD_4, T.FIELD_5) SELECT T2.FIELD_1, T2.FIELD_2, T2.FIELD_3, T2.FIELD_4, T2.FIELD_5 FROM T_YYYY T2 WHER…
1.定义 所谓存储过程(Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 编译后存储在数据库系统中.在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数 来调用并执行它,从而完成一个或一系列的数据库操作. 2.存储过程的创建 Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常. 3. 使用存储过程的好处: 1.简化复杂的操作 2.增加数据的独立性 3.提高安全性 4.存储过程的语法 CREATE [OR REPLACE]…
一般我们会将一些涉及到数据库的定时任务直接用存储过程搞定,省去了后端代码的开发.部署,简单.快速,但这种方式存在一个弊端——当存储过程执行出错了,我们无法感知.解决办法也简单,学代码那样去捕获异常.打印日志. 第一步,建日志表: create table TBL_WLF_SYS_LOG ( S_TIME VARCHAR2() not null, S_LEVEL VARCHAR2(), S_PROCNAME VARCHAR2(), S_MSG VARCHAR2(), S_ADVICE VARCHA…
[From] https://oracle-base.com/articles/10g/dml-error-logging-10gr2 需要记录下大量DML操作中出错的具体record,看到有两种方案,一种是使用批量DML操作bulk collect并带上save exceptions子句,然后做处理.稍微繁琐,不想使用.于是用另一种方案,就是在DML语句后面跟上LOG ERRORS. LOG ERRORS [INTO [schema.]table] [('simple_expression')…
1 SQLPlus无法登陆oracle,PLSql可以登陆,报错ORA-12560 环境变量 右击计算机属性-->高级系统设置-->高级-->环境变量-->系统变量-->Path 将 E:\app\Administrator\product\11.2.0\dbhome_1\bin 放到E:\app\Administrator\product\11.2.0\dbclient_1\bin的前面 重启服务,重启监听即可…
需求: 插入一条记录,要求自动获取当前日期,并且格式为(YYYY-MM-DD HH24:MI:SS) sql语句: insert into SY_COMM_CONFIG(CONF_ID, S_MTIME ) values('2Zt45FyiB83FTOdnskZ3',to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') 其中,S_MTIME字段为varchar2(23)类型. 效果展示:…
监听程序启动停止查看名利: 1.切换到oracle用户:su - oracle 2.查看监听状态:lsnrctl status 3.停止监听:lsnrctl stop 4.启动监听:lsnrctl start     实例启动停止: 1.设置当前操作的实例:export ORACLE_SID=实例名 2.连接数据库命令行模式:sqlplus /nolog 3.sql:conn /as sysdba 以dba身份登录数据库 4.startup: 启动分为三种: startup---直接启动全部完成…
一.Oracle历史 于1977年拉里埃里森和他三个朋友成立了软件研发公司,并在之后给中央情报局开发了命名为Oracle而出名,并在之后将公司名改为Oracle.1989年以甲骨文命名进入中国. Oracle以数据存储量大.处理速度快.安全性高一级容错性强等特点. 二.Oracle的安装(windows) 1.下载完Oracle安装包解压后,双击setup.exe: 2.安装会提示不满足最低要求,选择是: 3.去掉√,然后选择下一步: 4.选择下一步: 5.选择下一步: 6.选择安装路径,并配置…
由于之前建的job过多,造成数据库cpu占用率达到99%,造成需要的job崩溃. 以下为解决方案: 1. 查询当前的job列表 : select * from user_jobs; 2. 暂停所有的job exec dbms_job.broken('&JOB',true); 需要commit;  (需要当前用户登录) 3. 删除相应的物化视图(这个是最占资源的...) 4.最后把有问题的dbf文件删掉 DROP TABLESPACE tablespace_name INCLUDING CONTE…
2015年9月14 1.在csdn论坛中看帖子,遇到的一个问题:ORA-01422 实际返回的行数超出请求的行数.…
(一).判断 某字段 是否包含 某字符串 select * from mc_member m where instr(m.bu, 'BU') > 0 --查询bu包含'BU' (二).将 某字段,符合条件的部分字符串,替换成 指定的字符串 update mc_member m set m.bu = replace(m.bu,'BU','') where instr(m.bu, 'BU') > 0 --去掉(替换成空)bu 里 的BU字符串 (三).判断 某字符串 的长度 select * fr…