关于 oracle:emacs on Windows sql ssh

emacs on Windows + sql + ssh

我们的大学运行 Oracle 数据库服务器。我们通过 SSH 使用校园用户名/密码登录,然后自动启动 rlwrap sqlplus,我们必须使用另一个用户名和密码再次登录到数据库应用程序。

我想在 Windows 上使用 Emacs 在此服务器上编辑和运行简单的 SQL 脚本。我已经能够使用 Tramp 在其他 SSH 服务器上编辑文件,但由于某种原因(很可能是 sqlplus 的自动启动),我无法在数据库服务器上执行此操作。 Emacs 挂起 Tramp: Waiting for prompts from remote shell

我还想在缓冲区中运行交互式 SQL 会话,因此我将 https://stackoverflow.com/a/17277015/1813487 中的代码插入到我的 .emacs 并进行了适当的修改(即更改所有出现mysqloracle)。当我执行 M-x sql-oracle 时,Emacs 挂起 Tramp: Sending Password.

有没有办法修复/配置所有这些,或者唯一的方法是说服管理员禁用 sqlplus 的自动启动?

按照这里的建议,我只能通过重新编译 tramp.el 来使 Tramp 工作,这可能很重要,也可能不重要。我对 Emacs Lisp 知之甚少。


解决方案是编辑服务器上的 .bashrc 文件,使 SQLPlus 不会自动启动。


Tramp-over-SSH 通过启动 SSH 会话然后向其发送 shell 命令来工作。因此,如果您的 SSH 会话无法运行 shell,您将无法使用 Tramp-over-SSH 访问您的远程文件。

至于从 Emacs 启动 SQL,这样做的方法是将 sql-oracle-program 设置为一些执行必要命令的脚本,在您的情况下可能类似于 ssh <oracle-server>.