Oracle可以像sql server与my sql那样,直接点击树结构那里的数据库名,就可以查看数据库下的所有表吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle可以像sql server与my sql那样,直接点击树结构那里的数据库名,就可以查看数据库下的所有表吗?相关的知识,希望对你有一定的参考价值。
如果不可以,应该怎么查看一个数据库下的所有表呢。如果可以,应该怎么看啊?我怎么找不到
我用的就是plsql啊!
那表不是数据库里面用户建的表吧
追答是用户建的表啊,当然表都是在表空间下的
参考技术A 用toad,可以很方便的管理,但是用法与sql server的资源管理器有些差异 参考技术B 下个PLSQL 就行了追问plsql有啊,怎么看呢?
追答忘了跟你说了 Oracle 没有像sql库的概念 Oracle 的表是按用户分的 你可以把用户虚拟成库
PLSQL 登陆一个用户 左侧菜单 展开tables文件夹 里面就是这个用户的所有表 上面 有个下拉菜单可以过滤系统表
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, SQL Server, My SQL如何实现数据分页查询语句