Oracle可以像sql server与my sql那样,直接点击树结构那里的数据库名,就可以查看数据库下的所有表吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle可以像sql server与my sql那样,直接点击树结构那里的数据库名,就可以查看数据库下的所有表吗?相关的知识,希望对你有一定的参考价值。

如果不可以,应该怎么查看一个数据库下的所有表呢。如果可以,应该怎么看啊?我怎么找不到
我用的就是plsql啊!

oracle 有一个很好的ide就是plsql,进去之后点击tables 就是所有的表了追问

那表不是数据库里面用户建的表吧

追答

是用户建的表啊,当然表都是在表空间下的

参考技术A 用toad,可以很方便的管理,但是用法与sql server的资源管理器有些差异 参考技术B 下个PLSQL 就行了追问

plsql有啊,怎么看呢?

追答

忘了跟你说了 Oracle 没有像sql库的概念 Oracle 的表是按用户分的 你可以把用户虚拟成库
PLSQL 登陆一个用户 左侧菜单 展开tables文件夹 里面就是这个用户的所有表 上面 有个下拉菜单可以过滤系统表

参考技术C 推荐plsql 参考技术D 选择OBJECS -> tables -> 找到自己所要查看的表 第5个回答  2011-07-23 PL/SQL就可以

sql server与oracle链接问题

通过执行
select * from openquery(XXXX,'select * from YYYYY.abc')
where year_month='201405'
时出现
“ora-01652:无法通过256(在表空间temp中)扩展temp段”

请问大神们如何解决?

走了好多弯路,不过终于成功了,现将正确的步骤整理如下,供大家参考:
SQL Server Management Studio Express(简写SSMS)
SQL Server配置管理器:SQL Server Configuration Manager(简写SSCM)
一、 开启SQL Server 2008远程连接---如果已经开启,则可以跳过
1. 打开SSMS,用Windows身份连接数据库后,右键点击数据库引擎,选择“属性”
2. 左侧选择“安全性”,选中右侧的“SQL Server和Windows身份验证模式”以启用混合登录模式
3. 左侧选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”
4. 打开SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行
5. 选中左侧“SQL Server网络配置”下的“MSSQLSERVER的协议”,右侧的TCP/IP默认是“Disabled”,双击或右键点击选“属性”,在“协议”选项卡中将其修改为“Enabled”,在“IP Address”选项卡,设置端口“1433”
6. 选中左侧“SQL Native Client 10.0配置”下的“客户端协议”,将“TCP/IP”也修改为“Enabled”
7. 重新启动SQL Server 2008
8. 此时应该可以使用了,但还是要确认一下防火墙。将SQLServr.exe(C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe)添加到允许的列表中
二、 安装Oracle客户端软件
可以去Oracle官网下载,比如“10201_client_win32”
安装成功后,在Oracle客户端安装目录下的/network/admin/tnsnames.ora配置所要连接的服务器的相关信息,比如:
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11.90)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
如果admin目录下没有“tnsnames.ora”,新建一个文本文件,改名为“tnsnames.ora”
三、 添加Windows的ODBC数据源
1. 开始->管理工具->数据源(ODBC),有些“开始”菜单中没有放“管理工具”连接,则可以先到“控制面板”中,然后选择“性能和维护”,就可以找到“管理工具”了
2. 在“用户DSN”选项卡或者“系统DSN”选项卡下,点击“添加”,选择“Microsoft ODBC for Oracle”后点击“完成”
3. 填写相关信息
数据源名称、服务器名称与“tnsnames.ora”中配置的一样,其他两项可以忽略
填好后,点击“确定”
四、 在SSMS中创建链接服务器
1. 在SSMS中,展开已经连接上的某数据库引擎,依次选择服务器对象->链接服务器,在“链接服务器”上点右键,选择“新建链接服务器”

2. 在“常规”选项卡上按照如下填写:
“链接服务器”,随便取个名字
“访问接口”和“产品名称”如上图所示,不要做任何改变,包括大小写
“数据源”与“tnsnames.ora”中配置的一样,也即与“添加Windows的ODBC数据源”步骤中填写的一样
“访问接口字符串”,按照“uid=username;PWD=userpasswd”格式来填写,或者“ID=username;Password=userpasswd”也行,这里的username和userpasswd为登录所要连接的Oracle数据库所使用的用户名和密码;这里一定要填写,虽然在“安全性”选项卡中也会填写
3. 切换到“安全性”选项卡,填写用户名和密码,与上一步所填的用户名和密码一致
点击“确定”,完成
4. 查看Oracle中的数据
此时,在“链接服务器”下面,会出现刚刚创建的链接服务器,展开,可以看到所有的表和视图,但是只能看到表名,不能查看字段
要查询可以右键点击某表,选择:编写脚本为->Select 到->新查询编辑器窗口
五、 查询或更新Oracle数据库中的数据
亲测,我空间的日志
求采纳为满意回答。追问

离题了

参考技术A

错误提示的意思是该查询需要使用临时表空间,但是临时表空间满了且无法扩展,所以查询执行不下去了,报错。造成这一错误的原因基本上是: 查询所涉及的数据较大,临时空间较小且不能扩展。

所以,解决方法是:

1) 修改查询语句,将openquery的结果限制在有限范围内(没有实测过,想想应该是这样的吧)

2) 修改Oracle数据库设置,扩大临时表空间

 

SQL Server中execute可以传入参数调用连接数据库的查询,格式如下:

execute ('select * from table_name where field_1 = ? and field_2 = ?', parameter_value_1, parameter_value_2) at linked_database

其中,execute的第一个参数是连接数据库中查询语句,必须是目标数据库的语法,这里就是Oracle数据库的查询;field_1 = ?中的问号则是代表需要使用一个传入参数,必须在查询语句之后的参数中填写此参数值,就是parameter_value_1; 最后, at linked_database则指定在哪个连接数据库上执行。

所以,可以这样查询:

execute ('select * from YYYY.abc where year_month = ?', '201405') at XXXX

'201405'可以换成SQL Server的变量,如@yearMonth.

追问

谢谢大神,大神有办法把日期条件放在openquery么

追答

你可以直接将条件year_month放到openquery的查询语句中去的,但是无法将此查询条件参数化(指的是用SQL Server变量, 如此例中只能固定写成201405)。

select * from openquery(XXXX, 'select * from YYYY.abc where year_month=''201405''')

查询字符串中的单引号需要用两个单引号表示。

本回答被提问者和网友采纳
参考技术B 把where放到openquery里面吧追问

那样语法错误了

以上是关于Oracle可以像sql server与my sql那样,直接点击树结构那里的数据库名,就可以查看数据库下的所有表吗?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008数据库中如何像oracle那样查询表的数目

oracle server和my sql 语法区别

Oracle, SQL Server, My SQL如何实现数据分页查询语句

记录MySQL运行的SQL

sql server 2005中有没有像oracle中(set timing on)设置查询时间的语句啊?

oracle里面有没有类似与sql server里面的go?