在SQL*Plus中,有一个HOST command,用于在不退出SQL*Plus的情况下执行操作系统命令或显示操作系统提示符。
因此,如果我从Unix命令行连接到SQL*Plus
myunixuser ~$ sqlplus user/password@mydb
SQL*Plus: Release 19.0.0.0.0 - Production on Sun May 24 21:01:56 2020
SQL>现在,如果我输入HOST,就会返回到shell:
SQL> HOST
myunixuser ~$如果我在命令行中输入exit,我就会返回到SQL*Plus,这并不奇怪。
我无法区分原始命令行和SQL*Plus打开的shell。是否有可能找出SQL*Plus是否在调用堆栈上,并且可能存在打开的数据库事务?
很可能,这是一个关于Unix而不是SQL*Plus的问题?
发布于 2020-05-25 04:41:05
您可以使用ps来显示带有父进程id的当前会话进程。
例如:
$ ps -jt
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
2510 2511 2511 2511 pts/1 4890 Ss 1000 0:00 -bash
2511 4343 4343 2511 pts/1 4890 Sl 1000 0:00 sqlplus
4343 4411 4411 2511 pts/1 4890 S 1000 0:00 /bin/bash
4411 4890 4890 2511 pts/1 4890 R+ 1000 0:00 ps -jt
$ 这里的bash进程4411是4343的子进程,4343是sqlplus。
https://stackoverflow.com/questions/61991333
复制相似问题