数据无法导入怎么办 导入不了数据如何解决

数据无法导入怎么办 导入不了数据如何解决,第1张

导入数据时报1659的错误的原因主要是数据库表空间剩余空间不足引起的。

分析原因

1、表空间剩余空间不足。

使用下面语句,查看表空间剩余空间

select Upper(ftablespace_name) "表空间名",

dtot_grootte_mb "表空间大小(M)",

dtot_grootte_mb - ftotal_bytes "已使用空间(M)",

to_char(round((dtot_grootte_mb - ftotal_bytes) /

dtot_grootte_mb 100, 2),'99099') || '%' "使用比",

ftotal_bytes "空闲空间(M)",

fmax_bytes "最大块(M)"

from (select tablespace_name,

round(sum(bytes) / (1024 1024), 2) total_bytes,

round(max(bytes) / (1024 1024), 2) max_bytes

from sysdba_free_space

group by tablespace_name) f,

(select ddtablespace_name,

round(sum(ddbytes) / (1024 1024), 2) tot_grootte_mb

from sysdba_data_files dd

group by ddtablespace_name) d

where dtablespace_name = ftablespace_name

order by ftablespace_name;

表空间剩余空间不足时,可以根据原数据库表空间大小增加表空间。

alter tablespace 表空间名 add datafile '数据文件名' size 数据文件大小;

2、剩余表空间还很多。

使用下面语句查看原数据库表表定义,找到initial_extent值大的表,将这些表的

创建语句导出后修改initial_extent值,在目标数据库中创建后再导入数据,导入时

增加参数ignore=y。

select table_name, initial_extent

from user_tables

where initial_extent is not null

order by initial_extent desc

如果找不到原数据库,可以使用

imp userid/userid@service_name file=dmp文件名 indexfile=index文件名 rows=n full=Y

命令将dmp文件中创建表的语句导入到indexfile文件中,查看indexfile如下:

REM CREATE TABLE "TEST""DM_KJKM_COPY" ("KJZDMB_DM" VARCHAR2(100)

REM ENABLE, "KMID" NUMBER(20, 0), "KMBM" VARCHAR2(100), "KMMC"

REM VARCHAR2(500), "KMQC" VARCHAR2(1000), "KMLB_DM" VARCHAR2(100),

REM

使用文本编辑工具,查找INITIAL将过大的初始值改为65536后,将REM去除后,在数据库中创建后再使用exp导入数据,导入时增加参数ignore=y。

oracle经常需要查数据库临时表空间大小,使用率,加表空间等,这里总结临时表空间相关的语句:

0、查看实例的临时表空间

1、查询临时表空间路径:

2、新增临时表空间:

3、查询临时表空间使用情况:

查看临时表空间的使用情况

4、删除临时表空间: 删除临时表空间的一个数据文件:

5、删除临时表空间(彻底删除):

6、更改系统的默认临时表空间:

7、查看用户的临时表空间所属

8、删除临时表空间

9、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)

解释: username 正在执行sql的用户名 sql_id 正在执行的sql的的sql_id segtype 正在执行的SQL语句做的是什么 *** 作 BYTES_USED 正在执行sql语句使用的临时表空间的大小 BYTES_FREE 剩余多少临时表空间

Oracle查看用户及对应的表空间与临时表空间

删除数据库数据 *** 作: 1、解锁当前用户连接状态:

2、删除指定用户:

3、删除表空间:

查看临时表空间的数据文件的状态

oracle在导入数据时报1659的错误的原因主要是数据库表空间剩余空间不足引起的。

分析原因

1、表空间剩余空间不足。

使用下面语句,查看表空间剩余空间

select Upper(ftablespace_name) "表空间名",

dtot_grootte_mb "表空间大小(M)",

dtot_grootte_mb - ftotal_bytes "已使用空间(M)",

to_char(round((dtot_grootte_mb - ftotal_bytes) /

dtot_grootte_mb 100, 2),'99099') || '%' "使用比",

ftotal_bytes "空闲空间(M)",

fmax_bytes "最大块(M)"

from (select tablespace_name,

round(sum(bytes) / (1024 1024), 2) total_bytes,

round(max(bytes) / (1024 1024), 2) max_bytes

from sysdba_free_space

group by tablespace_name) f,

(select ddtablespace_name,

round(sum(ddbytes) / (1024 1024), 2) tot_grootte_mb

from sysdba_data_files dd

group by ddtablespace_name) d

where dtablespace_name = ftablespace_name

order by ftablespace_name;

表空间剩余空间不足时,可以根据原数据库表空间大小增加表空间。

alter tablespace 表空间名 add datafile '数据文件名' size 数据文件大小;

2、剩余表空间还很多。

使用下面语句查看原数据库表表定义,找到initial_extent值大的表,将这些表的

创建语句导出后修改initial_extent值,在目标数据库中创建后再导入数据,导入时

增加参数ignore=y。

select table_name, initial_extent

from user_tables

where initial_extent is not null

order by initial_extent desc

如果找不到原数据库,可以使用

imp userid/userid@service_name file=dmp文件名 indexfile=index文件名 rows=n full=Y

命令将dmp文件中创建表的语句导入到indexfile文件中,查看indexfile如下:

REM CREATE TABLE "TEST""DM_KJKM_COPY" ("KJZDMB_DM" VARCHAR2(100)

REM ENABLE, "KMID" NUMBER(20, 0), "KMBM" VARCHAR2(100), "KMMC"

REM VARCHAR2(500), "KMQC" VARCHAR2(1000), "KMLB_DM" VARCHAR2(100),

REM

使用文本编辑工具,查找INITIAL将过大的初始值改为65536后,将REM去除后,在数据库中创建后再使用exp导入数据,导入时增加参数ignore=y。

以上就是关于数据无法导入怎么办 导入不了数据如何解决全部的内容,包括:数据无法导入怎么办 导入不了数据如何解决、关于临时表空间问题总结、无法连接Oracle数据库使用Docker容器后问题,怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/9745834.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存