oracle 执行sql语句提示用户不存在

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 执行sql语句提示用户不存在相关的知识,希望对你有一定的参考价值。

我新建了一个数据库,我将一个之前执行正确的sql语句在sqlplus中执行,可是提示用户不存在的错误,这是什么原因呢?之前刚建好数据库的时候执行这个sql语句没有问题的
CREATE TABLE "TRUST2"."TEST" ("ID" VARCHAR2(10) NOT NULL, "NAME"
VARCHAR2(10) NOT NULL)
TABLESPACE "SYSTEM"
这是我的sql语句
错误信息如下:
ERROR 位于第 1 行:
ORA-01918: 用户'TRUST2'不存在
可是TRUST2明明是存在的

可以查看一下此用户的权限,除了connect权限外,至少要有create table的权限,给用户授权 参考技术A 语句是什么?提示的信息是什么?oracle提示的一般是这样的,ora XXXXX,你可以按这个在网上搜一下。

如何查看oracle服务器上正在执行的SQL语句

参考技术A 首先,你要以dba身份登陆数据库。第二,为某个用户开启sql跟踪。那个用户就是你要跟踪的、正在执行sql语句的那个用户。命令如下:execute dbms_system.set_sql_trace_in_session(sid,serial#,true)其中参数的意义是,sid-会话id,serial#-序列号,这两个参数可以从v$session中得到。第三,上面的命令执行成功之后数据库就自动对该用户所发出的所有sql语句进行跟踪,并把结果写在用户跟踪文件里。用户跟踪文件存放在数据库服务器上,路径请参考init.ora文件中的udump参数值。文件名为ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系统进程编号,这个编号可以从v$process和v$session两个表通过关联的方式查询得到。本回答被提问者采纳 参考技术B

    查询Oracle正在执行的sql语句及执行该语句的用户

  SELECT b.sid oracleID,
       b.username 登录Oracle用户名,
       b.serial#,
       spid 操作系统ID,
       paddr,
       sql_text 正在执行的SQL,
       b.machine 计算机名
FROM v$process a, v$session b, v$sqlarea c
WHERE a.addr = b.paddr
   AND b.sql_hash_value = c.hash_value

    查看正在执行sql的发起者的发放程序

  SELECT OSUSER 电脑登录身份,
       PROGRAM 发起请求的程序,
       USERNAME 登录系统的用户名,
       SCHEMANAME,
       B.Cpu_Time 花费cpu的时间,
       STATUS,
       B.SQL_TEXT 执行的sql
FROM V$SESSION A
LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS
                   AND A.SQL_HASH_VALUE = B.HASH_VALUE
ORDER BY b.cpu_time DESC

    查出oracle当前的被锁对象

  SELECT l.session_id sid,
       s.serial#,
       l.locked_mode 锁模式,
       l.oracle_username 登录用户,
       l.os_user_name 登录机器用户名,
       s.machine 机器名,
       s.terminal 终端用户名,
       o.object_name 被锁对象名,
       s.logon_time 登录数据库时间
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
   AND l.session_id = s.sid
ORDER BY sid, s.serial#;


    kill掉当前的锁对象可以为

  alter system kill session 'sid, s.serial#‘;

参考技术C ---正在执行的
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT
from v$session a, v$sqlarea b
where a.sql_address = b.address

---执行过的
select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
from v$sqlarea b
where b.FIRST_LOAD_TIME between '2015-11-13/09:24:47' and
'2015-11-13/09:24:47' order by b.FIRST_LOAD_TIME

以上是关于oracle 执行sql语句提示用户不存在的主要内容,如果未能解决你的问题,请参考以下文章

oracle导入表结构时报表空间不存在,该怎么解决?

oracle 删除用户时提示用户不存在

oracle 删除用户时提示用户不存在

SQL判断数据库是不是存在。

oracle语句中when条件接不存在怎么写

oracle锁表了查出了id但是就是杀不掉,提示用户会话id不存在,求解