Oracel疑难杂症

一、当想要删除自己所创建的表,是否会遇到如下提示: 【 ORA-00604、ORA-00942】

请输入以下内容(我是在PL/SQLDeveloper中添加的,可提前查看自己是否已有这两张表):

1.以sys/oracle登录,创建两个表

--1)-----------------------------------------------------------------
-- Create table
create table ARGUMENT$
(
  OBJ#          NUMBER not null,
  PROCEDURE$    VARCHAR2(30),
  OVERLOAD#     NUMBER not null,
  PROCEDURE#    NUMBER,
  POSITION#     NUMBER not null,
  SEQUENCE#     NUMBER not null,
  LEVEL#        NUMBER not null,
  ARGUMENT      VARCHAR2(30),
  TYPE#         NUMBER not null,
  CHARSETID     NUMBER,
  CHARSETFORM   NUMBER,
  DEFAULT#      NUMBER,
  IN_OUT        NUMBER,
  PROPERTIES    NUMBER,
  LENGTH        NUMBER,
  PRECISION#    NUMBER,
  SCALE         NUMBER,
  RADIX         NUMBER,
  DEFLENGTH     NUMBER,
  DEFAULT$      LONG,
  TYPE_OWNER    VARCHAR2(30),
  TYPE_NAME     VARCHAR2(30),
  TYPE_SUBNAME  VARCHAR2(30),
  TYPE_LINKNAME VARCHAR2(128),
  PLS_TYPE      VARCHAR2(30)
)
tablespace SYSTEM
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 16K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate indexes 
create unique index I_ARGUMENT1 on ARGUMENT$ (OBJ#, PROCEDURE$, OVERLOAD#, SEQUENCE#)
  tablespace SYSTEM
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 16K
    minextents 1
    maxextents unlimited
  );
create index I_ARGUMENT2 on ARGUMENT$ (OBJ#, PROCEDURE#, SEQUENCE#)
  tablespace SYSTEM
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 16K
    minextents 1
    maxextents unlimited
  );
-- Grant/Revoke object privileges 
grant select on ARGUMENT$ to CTXSYS with grant option;

--2)-----------------------------------------------------------------
-- Create table
create table ASSOCIATION$
(   
OBJ#                NUMBER not null,   
PROPERTY            NUMBER not null,   
INTCOL#             NUMBER,   
STATSTYPE#          NUMBER,   
DEFAULT_SELECTIVITY NUMBER,   
DEFAULT_CPU_COST    NUMBER,   
DEFAULT_IO_COST     NUMBER,   
DEFAULT_NET_COST    NUMBER,   
INTERFACE_VERSION#  NUMBER,   
SPARE2              NUMBER
)
tablespace SYSTEM   
  pctfree 10   
  pctused 40   
  initrans 1   
  maxtrans 255   
  storage  
   (     
    initial 64K     
    minextents 1     
    maxextents unlimited   
  );
-- Create/Recreate indexes 
  create unique index ASSOC1 on ASSOCIATION$ (OBJ#, INTCOL#)   
  tablespace SYSTEM   pctfree 10   initrans 2   maxtrans 255   
  storage
     ( 
         initial 64K 
         minextents 1 
         maxextents unlimited  
          ); 
   create index ASSOC2 on ASSOCIATION$ (STATSTYPE#)  
   tablespace SYSTEM   pctfree 10   initrans 2   maxtrans 255  
    storage   
    (    
     initial 64K     
     minextents 1     
     maxextents unlimited   
    );
  

2.可顺利删除表。

****注:详情见原网,来自网络大神的辅助:疯封风;

二、在重新编译/重新验证时出错

在这里插入图片描述
【ORA-04045】:是Oracle的一个bug,执行以下操作可修复,切换到原来的用户执行truncate语句。
1.使用快捷键“window+R”,出入cmd,进入命令行,(sys用户进入sqlplus)输入:

  1. sqlplus / as sysdba
  2. alter system set “_system_trig_enabled” = false scope=spfile;
  3. alter system set aq_tm_processes=0 scope=spfile;
  4. alter system set job_queue_processes=0 scope=spfile;

2.重启数据库

  1. shutdown immediate
  2. startup

3.可正常使用数据库。
****注:详情见原网,来自网络大神的辅助:godymoon

三、Oracle忘记用户名和密码(简单/粗暴)

小朋友,听说你有很多问号
1.使用快捷键“window+R”,出入cmd,进入命令行,输入:
2.登录-----sqlplus/nolog
3.接入数据库-----connect / as sysdba
4.修改用户密码-----alter user sys identified by 123456;
***注:用户名为sys,密码为123456.
****注:详情见原网,来自网络大神的辅助:wkk_5;

四、是否想查看Oracle中,自己定义了哪些用户?来 Follow Me~

在这里插入图片描述
可输入以下代码:(可以一条一条试看哟~)

select * from dba_user;
select * from all_users;
select * from user_users;

五、是否想查看Oracle中,某张表的拥有者

可输入以下代码:

select owner from dba_tables where table_name=upper('表名');

六、是否想在Oracle中,建立某个用户的表

可在利用SQL语句建立表单时,添加用户名即可。如:

create table 用户名.表名();

七、是否想在Oracle中,添加某些用户对表的具体权限

在PL/SQL Developer中进行简单操作:
找到对应的表,单击右键–>编辑–>进入
在这里插入图片描述
在这里插入图片描述

八、是否会遇到以下情况:在Oracle中已添加表单信息,在Eclipse查找、调用时,却总是查询无结果。

坚持
其实很简单,
当我们在Oracle中添加了表单信息后,将信息提交一下就OK!
——其实并不奇怪,这是一种事务回滚机制,就像我们银行卡转账一样,如果发生突发情况或者转出方没有确认是不能够成功的,这是一种事务回滚机制。通过commit提交之后才能够完成保存insert动作。——
点击查看:具体提交信息位置

九、是否有出现第一次可查看Oracle信息,第二次重新登录时,无法连接之前的数据库?

出现这样情况的原因:我们电脑的IP地址是浮动的。
修改如下:
1.查看自己的电脑名称,复制。
控制面板–>系统安全–>系统–>计算机全名
2.找到自己安装的Oracle文件夹–>找到 listener.ora和tnsnames.ora ,(用记事本打开),将HOST对应的值修改为 自己的计算机全名。
在这里插入图片描述
点击查看:具体修改信息位置
3.将Oracle监听服务器重启。
4.OK。

发布了2 篇原创文章 · 获赞 0 · 访问量 28

猜你喜欢

转载自blog.csdn.net/qq_43228899/article/details/105078888