在 SQL PLUS ORACLE 11gr1 上使用 DATABASE 命令

Posted

技术标签:

【中文标题】在 SQL PLUS ORACLE 11gr1 上使用 DATABASE 命令【英文标题】:USE DATABASE command on SQL PLUS ORACLE 11gr1 【发布时间】:2012-05-05 12:31:23 【问题描述】:

在Windows7 32位平台上成功安装ORACLE 11gR1后,我可以进入SQL PLUS里面,也可以创建数据库,但是我仍然不知道如何使用数据库。

mysql 中使用数据库的命令应该是:

USE MYDATBASENAME;

在SQL SERVER中也大同小异:

USE [DATABASE];

但是我不知道如何通过 SQLPLUS 使用 ORACLE 11gR1 中的数据库,任何人有什么想法吗?

我打算在成功使用USE 命令后创建一个表。

【问题讨论】:

【参考方案1】:

尽管它们都使用相同的名词,但术语“数据库”在 MySQL (SQL Server) 和 Oracle 之间是完全不同的。

通常 MySQL 数据库映射到 Oracle 中的模式/用户。在 Oracle 中,模式和用户之间存在 1:1 的关系。

Oracle 中的“数据库”是指完整的安装(也称为“实例”)。由于通常只有一个实例/安装,因此在 Oracle 中“切换数据库”是没有意义的。

最接近 Oracle 中“使用 mydatabase”的方法是切换当前架构:

ALTER SESSION SET current_schema = other_user;

然后你就可以访问other_user的所有表而不用加前缀。这当然要求您当前的用户至少对其他用户的表(即架构)具有选择权限

【讨论】:

谢谢,我找到了 sqlplus MYUSERNAME/MYPASSWORD@MYHOSTNAME:1616 一对一的关系真的启发了我:D 谢谢 您在回答中打错了SESSION :)【参考方案2】:

您可以使用sqlplusw username/password@connect-string 登录oracle,然后执行select * from v$database

使用select instance_name from v$instance; 找出您当前连接到哪个数据库

【讨论】:

感谢您的帮助先生,我已经从 SELECT name FROM v$DATABASE 中得到了结果;它显示了我刚刚创建的数据库,现在我有 2 个数据库,我如何使用其中一个并在其上创建表,【参考方案3】:

TNSNAMES.ora 有关于您连接到哪个数据库的详细信息。

【讨论】:

在$ORACLE_HOME/network/admin中

以上是关于在 SQL PLUS ORACLE 11gr1 上使用 DATABASE 命令的主要内容,如果未能解决你的问题,请参考以下文章

oracle11gR1系统配置要求

如何使用 SQL*Plus 在 Oracle 11g 中显示数据库

SQL Plus 无法识别 Oracle PL/SQL 语句

Oracle where exists 子句不适用于 SQL Plus

oracle11g sql dever链接提示ora-12505,sql plus可以正常连接

在 SQL Plus 中,当在 Oracle 11g 及更高版本中使用 lpad 时,第二列会获得额外的尾随空格