在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
适用于Python工程师的2019年Unicorn企业重型招聘标准\ gt; \ gt; \ gt;
/p>
通常,pl/sql用于导入和导出数据库表。有3种方法。互联网上也有相关的导入和导入方法,但是弟弟实际上并没有使用它,只有一种,我现在将与您的孩子的鞋分享。 ;
导出表结构:
这样,pl/sql工具下的”导出对象功能”可用于导出单个表或多个表。但是,只能导出表结构,并且不能导出表中的现有数据。而在导入时,如果使用pl/sql命令来导入。
如果要移植不同用户的表结构,则需要在导出的目标文件中修改该用户(更改为要导入的用户)以使用它,否则它将报告不存在的视图异常。
?
导出表中的数据:
?您可以在查询数据表中使用类似饼图的图标”导出查询结果”吗?此功能可以导出单个表的数据内容。导入时需要使用命令提示符。
?
另一个:如果使用dmp文件导出方法,则可以导出表的结构和原始表的内容,这是一种很好的方法,但是无法导出存储过程。
如果表为空并且从未添加过数据,则在使用dmp导出时,该表将是错误的并且将不会导出。解决方案是:
11G中有一个新功能,当表中没有数据时,不会分配任何段来节省空间
解决方案:
1,插入一行,然后回滚以生成一个段。
此方法是将数据插入到空表中,然后将其删除,然后生成一个段。导出时,可以导出一个空表。
2.设置deferred_segment_creation参数
显示参数deferred_segment_creation?
名称类型?值?
—————————————————————————–?
deferred_segment_creation?布尔TRUE吗?
SQL \ gt;更改系统设置deferred_segment_creation = false;?
系统已更改。 ?
SQL \ gt;显示参数deferred_segment_creation?
名称类型?值?
—————————————————————————-?
deferred_segment_creation?布尔值FALSE
?
此参数的默认值为TRUE,将其更改为FALSE时,无论是空表还是非空表,都将分配该段。
请注意,设置此值后,它对先前导入的空表没有影响,因此无法导出。它只会影响新添加的表。如果需要先导出空表,则只能使用第一种方法。
我已经做了很长时间了,终于找到了这种方法。
首先查询当前用户下的所有空表
从NUM_ROWS = 0的user_tables中选择table_name ;
使用以下句子查找空表
选择”更改表格” || table_name ||”分配范围;”从user_tables中,其中num_rows = 0
导出查询结果并执行导出的语句
” ALTERTABLE” || TABLE_NAME ||” ALLOCATEEXTENT;”
———————————————————–
alter table AQ $ _AQ $ _MEM_MC_H分配范围;
> alter table AQ $ _AQ $ _MEM_MC_G分配范围;
alter table AQ $ _AQ $ _MEM_MC_I分配范围;
alter table AQ $ _AQ_PROP_TABLE_T分配范围;
alter table AQ $ _AQ_PROP_TABLE_H分配范围;
alter table AQ $ _AQ_PROP_TABLE_G分配范围;
alter table AQ $ _AQ_PROP_TABLE_I分配范围;
alter table AQ $ _KUPC $ DATAPUMP_QUETAB_T分配范围;
修改表AQ $ _KUPC $ DATAPUMP_QUETAB_H分配;
alter table AQ $ _KUPC $ DATAPUMP_QUETAB_G分配范围;
alter table AQ $ _KUPC $ DATAPUMP_QUETAB_I分配范围;
” ALTERTABLE” || TABLE_NAME ||” ALLOCATEEXTENT;”
———————————————————–
alter table AQ $ _SYS $ SERVICE_METRICS_TAB_T分配范围;
>修改表AQ $ _SYS $ SERVICE_METRICS_TAB_H分配范围;
修改表AQ $ _SYS $ SERVICE_METRICS_TAB_G分配范围;
修改表AQ $ _SYS $ SERVICE_METRICS_TAB_I分配范围;
然后再次执行
exp用户名/密码@数据库名称文件=/home/oracle/exp.dmp log =/home/oracle/exp_smsrun.log
成功!
?