假设原来的表是test1
要写到的表是test2test1的字段为
a
b
ctest2的字段为
d
e
f
其中a和d对应
b和e对应
c和f对应先把要写到的表清掉,执行如下语句:truncate
table
test2;然后把test1表的数据导入到test2表中,执行如下语句:insert
into
test2select
*
from
test1;
2. oracle如何查看dblink的代码,就如下图中的类似的
查询方法:
1、执行select * from dba_db_links;语句。
2、在PL/sql中,在左边浏览器中点击database links就可以看到数据库链路了。
创建Create database link语句:
create public database link 链路名 connect to 用户 identified by 口令 using '连接字符串';
3. oracle 数据链路 一段时间后不正常怎么解决
可能IIS版本问题导致
4. oracle里修改owner为public的链路
重新创建一个dblink
5. oracle 数据库链路删除
delete from BANKCONFIG where CODE='WO' and ADDRESS='ABC';
只要where后面确保只有这一条就可以删除
6. oracle 在数据库中 如何查看 对象(表、视图、序列号、同义词、数据库链路、存储过程、函数)名
你好的!
select*fromdba_objects;
是你试试,我记得是这个视图!
望采纳!
7. oracle数据链路突然不能用
千锋扣丁学堂IT为您解答:
数据链路(link)
是一个在分布式数据库中用来表示到一个远程数据库的连接路径的数据库对象,用来方便地直接调用远程数据库中各种对象。
编辑$ORACLE_HOME/network/admin/tnsnames.ora
abc =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PROT =1521))
(CONNECT_DATA =
(SERVICE = DEDICATED)
(SERVICE_NAME = ora10)
)
)
配置远程数据库连接标示符,也可以oracle用户登录后,用netca通过图形界面工具配置。
$sqlplus kitty/redhat@abc 测试连接远程数据库。
*这种方法,必须要知道远程数据库的用户名和密码,并且通过这个用户进行对远程数据库进行访问时,权限只有kitty用户在远程数据库的权限。
>创建公共链路(public database link)
在sqlplus字符界面创建公共数据库链路,这样在本地切换用户后,仍可通过数据库链路对远程数据库进行访问,当然权限只有创建link时remote database指定用户的权限。
$sqlplus / as sysdba
SQL>create public database link linkabc connect to kitty identified by “redhat” using ‘abc’;
这是建立数据库链路,用远程用户kitty/redhat通过tnsnames.ora定义的abc描述符。
SQL>select * from III@linkabc; 查询远程数据库的表
SQL>delete from III@linkabc where n=1; 删除远程数据的表内容
*注意,DDL操作是不能通过数据链路进行操作的,例如create table 。
Select * from dba_db_links; 查询数据库链路信息
Drop public database link linkabc; 删除创建的数据库链路
>使用同义词(synonym)隐藏链路信息
同义词是为数据库对象或其他同义词指定的别名,公用同义词可被数据库中所有用户存取,专用同义词仅能被指定用户及其他被授权的用户存取。
同义词的特点:
可屏蔽对象的名字和其所有者;
为分布式数据库的远程对象提供位置透明性;
为用户简化SQL语句。
Create table kitty.test (n number);
Create table test (n number);
Select * from test; 系统中有两个test表,分别是sys和kitty用户的
Select * from kitty.test;
Create public synonym ktest fro kitty.test; 为kitty.test创建同义词,屏蔽掉用户信息
Select * from ktest;
*注意须先有目标表的访问权限,才能通过该目标表上建立的公共同义词访问该目标表,此处sys用户先有kitty.test的访问权限,故可通过ktest访问该表,而john用户则不行。
Create public synonym rtest for test@linkabc; 对远程表建立同义词屏蔽数据链路信息。
Select * from dba_synonyms where synonym_name=’KTEST’;
Select * from dba_synonyms where synonym_name=’RTEST’; 查询系统中指定同义词的定义Drop public synonym ktest; 删除同义词
8. 烦请达人介绍oracle中所有DBA_ , ALL_ , USER_开头的视图。
DBA视图示例如下:
dba_data_files
◆关于数据库文件的信息
dba_db_links
◆数据库中的所有数据库链路
dba_extents
◆数据库中包括所有分区
dba_free_space
◆所有表空间中自由分区
dba_indexes
◆数据库中所有索引的描述
dba_ind_columns
◆在所有表及聚族上压缩索引的列
dba_objects
◆数据库中所有的对象
dba_rollback_segs
◆回滚段的描述
dba_segments
◆为所有数据库段分配的存储空间
dba_sequences
◆数据库中所有顺序书的描述
dba_synonyms
◆数据库中所有同义词
dba_tables
◆数据库中所有表的描述
dba_tablespaces
◆数据库中所有表空间的描述
dba_tab_columns
◆所有表描述、视图及聚族的列
dba_tab_grants
◆数据库中对象所授的权限
dba_tab_privs
◆数据库中对象所授的权限
dba_ts_quotas
◆所有用户表空间限额
dba_users
◆关于数据库的所有用户信息
dba_views
◆数据库中所有视图
视图:USER_VIEWS
通过USER_VIEWS 数据字典视图,可以访问视图的基本查询,USER_VIEWS 数据字典视图包含10 列,其中主要的3 列如下:
View_Name 视图名
Text_Length 视图的基本查询的长度,以字符为单位
Text 视图使用的查询
其他列主要与对象视图和版本有关,稍后将在本节介绍。
注意:
本节只适用于传统视图。对于物化视图,详细内容见45.9 节。
Text 列的数据类型为LONG。当通过SQL*Plus 查询USER_VIEWS 视图时,这可能会产生问题,因为SQL*Plus 会截断LONG 数据。但是,截断的位置可以通过set long 命令改变。USER_VIEWS 视图提供恰当设置LONG 截断点的机制,下面的示例将介绍这个机制。
Text_Length 列显示视图的查询的长度。因此,SQL*Plus 的LONG 截断点必须为一个等于或大于视图的Text_Length 值的值。例如,下面的程序清单显示了View_Name 列为AGING、Text_Length 列为355 的视图。
select View_Name, Text_Length from USER_VIEWS where View_Name = 'AGING'; View_Name Text_Length ---------------- ------------- AGING 355 由于该视图的文本长度为355 个字符,因此可以用set long 命令将LONG 截断点至少增加到 355(默认值为80),以查看视图的查询的全部文本。
set long 355 然后,可以查询USER_VIEWS 视图,以获得视图的Text 列,使用的查询如下面的程序清单所示:
select Text from USER_VIEWS where View_Name = 'AGING'; 如果没有使用set long 命令,则输出结果将截断为80 个字符,并且没有任何消息说明为什么会截断。在查询其他视图前,应当重新检查视图的Text_Length 值。
注意:
可以从USER_TAB_COLUMNS 视图中查询视图的列定义,也可以用该视图查询表的列定义。
如果在视图中使用了列别名,并且列别名是视图的查询的一部分,那么视图信息的数据字典查询将得以简化。由于该视图查询的整个文本显示在USER_VIEWS 视图中,因此也将显示列别名。
可以使用下面的格式创建视图:
create view NEWSPAPER_VIEW (SomeFeature, SomeSection) as select Feature, Section from NEWSPAPER; 在create view 命令的开头部分列出的列名从查询中删除了列别名,从而防止通过 USER_VIEWS 视图查看它们。查看视图的列名的唯一方法是查询USER_TAB_COLUMNS 视图。如果列名在查询语句中, 则对于该查询和列名来说, 只需要查询一个数据字典视图(USER_VIEWS)即可。
例如,已知上例中创建的NEWSPAPER_VIEW 视图,如果查询USER_VIEWS 视图,就会看到:
select Text from USER_VIEWS where View_Name ='NEWSPAPER_VIEW'; TEXT --------------------------------------- select Feature, Section from NEWSPAPER 此查询没有显示用户赋予的新列名,因为没有将这些列名作为该视图查询的一部分。为使这些列名显示在USER_VIEWS 视图中,可以在该视图的查询中添加它们,以作为列别名:
create view NEWSPAPER_VIEW as select Feature SomeFeature, Section SomeSection from NEWSPAPER; 现在,如果查询USER_VIEWS 视图,则列别名将作为视图的查询文本的一部分显示出来:
select Text from USER_VIEWS where View_Name ='NEWSPAPER_VIEW'; TEXT ----------------------------------------------- select Feature SomeFeature, Section SomeSection from NEWSPAPER 为了支持对象视图,USER_VIEWS 视图包含下面的列:
Type_Text 该类型视图的type 子句
Type_Text_Length 该类型视图的type 子句的长度
OID_Text 该类型视图的WITH OID 子句
OID_Text_Length 该类型视图的WITH OID 子句的长度
View_Type_Owner 该类型视图的视图类型的所有者
View_Type 视图类型
关于对象视图和类型的详细信息,请参阅第38 章和第41 章。
ALL_VIEWS 视图列出了用户所拥有的全部视图以及授权用户(直接授权或者授权给PUBLIC)访问的视图。由于 ALL_VIEWS 视图包含多个用户的项,因此,除了本节前面列出的列外,它还包含一个Owner 列。DBA_VIEWS 视图列出了数据库中的全部视图,DBA_VIEWS 视图与ALL_VIEWS 视图有相同的列定义。