有人知道怎么查看oracle,正在执行的语句吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有人知道怎么查看oracle,正在执行的语句吗?相关的知识,希望对你有一定的参考价值。

查看数据库中某用户,正在运行什么SQL 语句?
根据MACHINE、USERNAME 或SID、SERIAL#,连接表V$SESSION 和V$SQLTEXT,可
查出。
SQL*PLUS 语句:
“SELECT SQL_TEXT FROM V$SQL_TEXT T, V$SESSION S WHERE
T.ADDRESS=S.SQL_ADDRESS
AND T.HASH_VALUE=S.SQL_HASH_VALUE
AND S.MACHINE='XXXXX' OR USERNAME='XXXXX' -- 查看某主机名,或用户名
/”
参考技术A 打个ed回车,就可以看到上次执行的语句追问

可能是我说的不清楚,我是想看下现在运行的程序在ORACLE中执行的什么语句。

oracle如何执行多条create 语句

哎-- 我最后自己在网上找到答案了,是这样的
如果你有很多表要一起创建。
在SQL2005中是可以使用GO关键字的
但是oracle没有GO
就只能这样
声明:这个方法是我在网上找到的并非我自己原创。而且在提问题之前我也不知道,是后来才找到的。
create tablename
();
/
create tablename
();
/
create tablename
();
注意这个斜杠一定要单独空一行。要不一样报错的。

参考技术A 必须赋权才可以执行create语句,下面以create table为例,
在用户的sqlplus里执行
grant create table to 用户;
之后就可以在存储过程里的动态SQL里做包含create table的语句了。
同样 create view的话就应该执行
grant create view to 用户;

如:
str := 'create table 表名 '
execute immediate str;
参考技术B 每条建表语句用分号隔开,
把所有的语句保存到一个*.sql文件中,然后再sql提示符状态下运行.
参考技术C 中间用 ; 隔开 参考技术D create or replace XXXX
();

create or replace XXXX
();

以上是关于有人知道怎么查看oracle,正在执行的语句吗?的主要内容,如果未能解决你的问题,请参考以下文章

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

oracle会记录每次执行的sql语句吗

oracle 中怎样查看以前执行过的SQL语句?

如何查看Oracle中sql语句的执行时间

oracle中的存储过程有啥作用,该怎么理解?(数据更新的话用update语句不就完了吗)

oracle查看历史session