1.查看存储过程编译无效的原因 show errors procedure hr.getperson; 2.指定一个存储过程进行编译 alter procedure  hr.getperson compile;…
1.  查看数据库中的无效对象      check oracle object      SQL> select count(*) from dba_objects where status='INVALID'; 2. 关闭应用,数据库和监听不能关闭         cd  $ADMIN_SCRIPTS_HOME         ./adadstpall.sh apps/apps   3. 用APP用户,执行adadmin打开维护模式并重新编译APPS Schema:      打开维护模式…
在数据库中,会存在一些无效的对象,导致这种现象的发生原因很多,其中最常见的就是数据库升级(例如修改了表的结构),迁移而引起. 编译无效对象的方式: 1 使用alter **** compile 语句进行编译   2 以SYSDBA用户,执行ORACLE_HOME/rdbms/admin/utlrp.sql 脚本 注:执行时数据库中最好不要有活动事物或DDL操作,否则极容易导致死锁的出现,另外,utlrp.sql 里面其实调用了$ORACLE_HOME/rdbms/admin/utlrcmp.sq…
  oracle 建表时显示ORA-00904无效的标识符 CreationTime--2018年7月19日16点03分 Author:Marydon 1.情景展示 使用plsql建表时,报错 字段展示 2.解决方案 字段命名时与ORACLE关键字发生冲突,只要更改字段名称即可(sysdate为关键字,id不影响) 相关推荐: oracle 建表时显示ORA-00984: 列在此处不允许  …
在使用MyBatis操作Oracle数据库的时候,写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错,参数个数无效 <if test="empId!=null and empId!=''"> and e.empId like CONCAT('%',#{empId},'%') </if> 异常信息: 经过查阅数个资料后得知Oracle的CONCAT函数不像MySql那样支持三个参数的拼接,需要把SQL语句修正为: and e.empId like…
1.视图 1.1.创建.删除及调用普通视图 1.2.高级视图介绍 2.函数 2.1.系统函数介绍 2.2.创建.删除及调用自定义函数 3.存储过程 3.1.创建.修改及删除存储过程 3.2.调用存储过程 4.包/包体 4.1.创建包/包体 4.2.调用包/包体 4.3.删除包/包体 5.总结 Oracle 数据库提供了表.索引.视图.函数.存储过程.包/包体.序列.触发器.作业等数十种模式对象.实际上除表以外,其它对象都不是(关系型数据库)应用所必须的,大部分对象都是在某种特殊场景下才会被用到.…
原博主:http://blog.csdn.net/tianlesoftware/article/details/4843600 Applies to: Oracle Server - Enterprise Edition - Version: 10.1.0.5.0 This problem can occur on any platform. Symptoms: The issue is that the following error was raised : ORA-00600: inter…
1.su oracle  切换到linux的oracle账号 需要使用 su -oracle,而不是su oracle;原因是: 先执行exit退出,再重新切换 2.打开数据库监听 lsnrctl listener 启动监听  #这种格式是错误的(具体参考:https://www.cnblogs.com/Formulate0303/p/15493173.html) lsnrctl status  查看监听listener的状态,提供listener(监听)的状态信息,包括启动时间.运行时间和tr…
原因是oracle的日期格式化格式和本地语言环境的日期格式不一致导致的. 一般情景为oralce格式为英文格式 本地服务器或者开发机的环境为中文环境. 使用Dbcontext 实例一般不会有问题. 但是使用db.Database.SqlQuery会引起这个错误. 解决办法 1.改变客户端机器语言环境,使其格式化日期格式跟oracle服务器的一样 2.在执行本来的sql之前,先执行一个设置语句 alter session set nls_date_language='american' db.Da…
问题描述: 采用PowerDesigner15针对Oracle 11g 创建物理数据模型,想实现一个字段的自增,采用如下步骤: 1.创建序列,命名为Sequence_1; 2.在自增字段编辑窗口中,选择序列Sequence_01: 3.将表窗口Preview标签页,生成代码复制到SqlDeveloper 11gr2中执行,编译错误: PowerDeginer生成的部分代码: -------------------------------------------------------------…
Oracle 安装: 检查安装包 rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-de…
以下错误: ORA-00922: 选项缺失或无效 ORA-00922: missing or invalid option 是由于: execute(sql)语句多了个分号 ; 你没看错!!! 在sqlplus执行一点问题都没有的语句,JDBC总是报错:ORA-00922: 选项缺失或无效 百度了半天都没找到解决办法,最后还是谷歌给力,stackoverflow上的这个回答https://stackoverflow.com/questions/30818416/ora-00922-missing…
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错.三.死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台.1)用dba用户执行以下语句select username,lockwait,status,machin…
Navicat Premium 连接oracle,密码明明是对的,还是提示 ORA-01017:用户名/口令无效:登陆被拒绝.而用Pl/SQL 连接没有问题. 其实用户名和密码是对的,但还是会报错,这时,打开选项卡高级,默认角色为“SYSBDA”改为“Default”,重新“测试连接”即可.…
总结一下oracle中会使索引无效的情况 1 无where条件: 2 索引列进行运算时: 3 使用like,并且通配符在前的情况: 4 字符型字段为数字时在where条件里不添加引号: 5 not in ,not exist: 6 当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况: 7 单独引用复合索引里非第一位置的索引列: 8 如果column1和column2是同一个表的字段,含有条件column1 < column2或column1 > column2或colu…
oracle用以下sql语句新建表时,出现"标识符无效"错误: create table users( user_id integer not null, user_name varchar2(10), login_name varchar2(10) not null, password VARCHAR2(32) not null, USER_TYPE CHAR(1) default 'N' not null constraint CKC_USER_TYPE_USERS check(U…
写select查询,报错:ORA-00904 标示符无效 这个错误通常是因为 字段名写错了,或者是在创建表的时候,创建最后一个字段的时候也加了逗号 . 我遇到的情况时,之前的同事创建表的时候,将小写的字段加上了双引号,因此,做查询或更新的时候,必须在字段上加双引号.…
--检查约束 create table test1( id ) primary key, email ) check (email like '%@%') ) drop table test1 ,'12@6.com'); select * from test1 create table test2( id number primary key, gender ) check(gender in('男','女')) ) drop table test2 select * from test2 ,'…
在对Procedure.Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接.这个时候数据库不会主动的释放会话的资源,如果再次对Procedure.Function或Package进行Debug的话,就会产生等待.因为被防火墙杀掉的会话还在运行着上次的Debug,会有锁的存在.只用等到数据库回收上次Debug的会话资源或者DBA手动将会话KILL掉.以下是手动KILL会话的方法: 1.得到所有的会话的信息 1.select * FROM V$SESSI…
--查看是否有除number,char,date,varchar2,clob/blob之外的类型,比如:NVARCHAR2,TIMESTAMP(6),FLOATSELECT DISTINCT a.DATA_TYPE FROM user_tab_cols a; --对于number类型的,还需查询是否有确定的精度,若无,根据实际情况确定精度.SELECT *  FROM user_tab_cols a WHERE a.data_type = 'NUMBER'   AND a.data_precis…
SELECT l.session_id sid ,        substr(o.owner,               1,               8) owner,        o.object_type object_type,        substr(o.object_name,               1,               18) object_name,        decode(l.locked_mode,               0,    …
随笔 - 46  文章 - 92  评论 - 5   lv_sql:='  insert into ETL_SUCESS_AMOUNT  select SEQ_OS_ETL_AMOUNTID.NEXTVAL AS AMOUNTID,1,AMOUNT_DATA,AMOUNT_HOUR,  serviceid,portalid,mouduleid,actionid,RESERVE1_ID,RESERVE2_ID,RESERVE3_ID, RESERVE4_ID,AMOUNT,AMOUNT_TIME …
太多的在线电子邮件存储过程.我不转发,弄个作为一个简单的例子演示. create or replace procedure Send_mail(mail_body varchar2) is smtp_conn utl_smtp.connection; user_name varchar2(20) := utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('username@email.com'))); use…
一.数据库部分 1.创建bean对象 CREATE OR REPLACE TYPE "QUARTZJOBBEAN" as object ( -- Author : Duwc -- Purpose : for QuartzJobBean job_name ), job_group ), job_class_name ), trigger_name ), trigger_group ), trigger_state ), trigger_type ), t1 ), t2 ), t3 ),…
一.oracle自定义函数 1.不带参数的函数: 返回t_book表的总条数: SQL> create function getBookCount return number as begin declare book_count number; begin select count(*) into book_count from t_book; return book_count; end; end getBookCount; / 函数已创建. //sys dba给当前用户授权创建函数.创建存…
在日常的数据库开发过程汇总难免会出现一些误删除的动作, 对于一些误删的操作我们可以通过oracle提供的闪回机制恢复误删数据, 从而避免出现较大的生产事故. 下面是本人平时工作中积累的一些常用的操作,非常简单实用,分享给大家. 恢复dml误删的数据: select * from  误删除的表名 as of timestamp(systimestamp-interval '10' minute);--此处的10代表10分钟前表中的数据,可以根据实际情况进行查询 恢复drop掉的存储过程.函数.包等…
package com.jckb.procedure; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import oracle.jdbc.OracleCallableStatement; public class MainTest3 { /** * 使用jdbc调用带游标参数的存储过程 create…
通过  DBMS_METADATA  包 Oracle 的在线文档,对这个包有详细说明: DBMS_METADATA 通过该dbms_metadata包的get_ddl()方法,我们可以查看表,索引,视图,存储过程等的定义语句. 用法: SQL> select dbms_metadata.get_ddl('对象类型','名称','用户名') from dual; 例如,我想查看用户USER1下创建的WORKER表. select dbms_metadata.get_ddl('TABLE','WO…
---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表. ---查询语句创建表 create table emp as select * from scott.emp; select * from emp; ---创建视图[必须有dba权限] create view v_emp as select ename, job from emp; ---查询视图 select * from v_emp; ---修改视图数…
首先搞清楚俩概念 存储过程(procedure)&程序包(package) 存储过程:数据库对象之一,可以理解为数据库的子程序,在客户端和服务器端可以直接调用它.触发器是与表直接关联的特殊存储过程,是在对表记录进行操作时触发的. 优点 存储过程在服务器端运行,执行速度快. 存储过程执行一次后,代码就驻留在高速缓存,以后的操作只需从高速缓存中调用已编译的代码执行,提高了系统性能. 确保数据库的安全.可以不授权用户直接访问应用程序中的一些表,而是授权用户执行访问这些表的存储过程.非授权的用户除非通过…