sql*plus 中的 DEFINE_EDITOR=vi

Posted

技术标签:

【中文标题】sql*plus 中的 DEFINE_EDITOR=vi【英文标题】:DEFINE_EDITOR=vi in sql*plus 【发布时间】:2010-09-13 13:20:16 【问题描述】:

做完 DEFINE_EDITOR=vi 之后。我写了

SQL > edit sample.sql

默认情况下,它存储在 Jagan/Documents 中。但我希望将其存储在 Jagan/Documents/plsql 中。任何人都可以告诉如何做到这一点..

【问题讨论】:

如果你只输入:`edit plsql/newsample.sql' 呢? 【参考方案1】:

这很简单。这将在 /tmp 目录中打开一个新文件:

SQL> edit /tmp/sample.sql

【讨论】:

@Jagan - 好吧,我对其进行了测试,该解决方案对我有用。您收到错误消息还是什么?另外,哪个版本的数据库? SQL*Plus 客户端的版本? *nix 的风格和版本? APC 的方法有效。如果失败,那是因为您的编辑命令错误,或者安全/权限限制。【参考方案2】:

sqlplus 使用起始目录。我这样做:

$cd /home/Jagan/Documents/plsql;sqlplus

【讨论】:

【参考方案3】:

在 Windows 中,您可以通过 SQL Plus 快捷方式的“Starts In”属性或通过 SQLPATH 注册表项来指定脚本的默认位置。

在 Unix 中,您将使用 ORACLE_PATH 环境变量。

有关详细信息,请参阅SQL Plus docs。

【讨论】:

导出 ORACLE_PATH=/home/Jagan/Documents/plsql。我把它放在 .bashrc 中。它仍然只在 Documents 中创建文件。 恐怕我对 Unix 的了解不够多,无法提供进一步的帮助。您可以像这样将“plsql”添加到路径中:“edit plsql/sample.sql” ORACLE_PATH 似乎只影响您可以从哪里运行和编辑现有文件,因此@sample.sql 将在ORACLE_PATH 指向之前的目录中查找sample.sql i> 查看当前目录;如果两者都存在相同的文件,它将使用ORACLE_PATH 下的文件。使用edit sample.sql 编辑现有文件与get sample.sql 一样。但是,如果您不提供路径,则使用 edit new.sqlsave new.sql 编辑或创建新文件总是会写入当前目录。 [甲骨文 10g/Solaris]。当然你也可以先cd $HOME/plsql【参考方案4】:

我目前在 Windows 上,所以我不能 100% 确定这是否适用于 Unix,但它应该给你一个想法:在%PATH% 环境变量指向的目录中,我创建了文件sqlplus_edit.bat,内容如下:

vi.exe c:\path\to\Jagan\Documents\PLSQL\%1

然后,在SQL*Plus

define _editor=sqlplus_edit

这对我有用。

【讨论】:

以上是关于sql*plus 中的 DEFINE_EDITOR=vi的主要内容,如果未能解决你的问题,请参考以下文章

Oracle统计分析和优化环境配置

『ORACLE』 设置Edit模式(11g)

Shell 脚本中的 SQL* PLUS 连接问题

SQL Plus中的?号

如何从 SQL *PLUS 中的批量插入中查找失败的插入语句

SQL Plus中的问号