ORA-01653 : la table DEV.BI_SYS_USER ne peut pas être étendue de 128 (dans le tablespace USERS)

Description du problème

Lorsque le projet exécute une insertion par lots de données dans la base de données Oracle, une exception est levée en arrière-plan à mi-chemin de l'exécution du programme :

ORA-01653: 表 emp 无法通过 128 (在表空间 USERS 中) 扩展

solution:

Astuce : La base de données doit disposer d'une autorisation d'opération (sys ou système)

1. Interrogez d'abord l'espace table en fonction du nom de la table effectuant l'opération

select * from all_tables where table_name = upper('表名');

2. Vérifiez ensuite l'utilisation de l'espace table correspondant selon le sql suivant

SELECT
	fs.tablespace_name "表空间名称",
	total / ( 1024 * 1024 ) "表空间大小(M)",
	free / ( 1024 * 1024 ) "表空间剩余大小(M)",
	( total - free ) / ( 1024 * 1024 ) "表空间使用大小(M)",
	total / ( 1024 * 1024 * 1024 ) "表空间大小(G)",
	free / ( 1024 * 1024 * 1024 ) "表空间剩余大小(G)",
	( total - free ) / ( 1024 * 1024 * 1024 ) "表空间使用大小(G)",
	round( ( total - free ) / total, 4 ) * 100 "使用率 %" 
FROM
	( SELECT tablespace_name, SUM( bytes ) free FROM dba_free_space GROUP BY tablespace_name ) fs,
	( SELECT tablespace_name, SUM( bytes ) total FROM dba_data_files GROUP BY tablespace_name ) df 
WHERE
	fs.tablespace_name = df.tablespace_name;

Il y a deux situations :

Vérifiez d'abord l'expansion de l'espace table et AUTOEXTENSIBLEvérifiez si l'expansion automatique est activée via le champ

SELECT * FROM DBA_DATA_FILES;
1. L'espace table n'est pas automatiquement étendu
--每次自动增长1024M
ALTER DATABASE DATAFILE 'D:\study\app\oradata\orcl\user1.dbf' AUTOEXTEND ON NEXT 1024M ;
2. L'espace table est épuisé

数据文件记得按顺序排下去

ALTER TABLESPACE USERS ADD DATAFILE 'D:\study\app\oradata\orcl\user1.dbf'  SIZE 1024M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED;

Dans la situation correspondante, effectuez l'opération correspondante, puis réexécutez l'opération d'insertion de données, et elle est revenue à la normale.

Guess you like

Origin blog.csdn.net/u012129030/article/details/125155949