我在Sql Developer向导中多次使用酵母来导出和导入数据。每次导出/导入后,新的主表都会出现在sql developer(view-> dba)中的“ +”按钮下。 我想删除所有这些表(大约10个表),并且除其中2个之外,我都成功了所有情况。当我编写sql代码:删除表x时,它向我显示此表不存在的错误。对于其他所有表,它都运行良好。 当我运行查询时,从dba_tables中选择*,其中table_name ='x',表在那里。我正在以系统用户身份编写drop statement。
select *
from dba_tables
where table_name in ('moj_dump_job'
, 'moj_job_data_pump');
OWNER TABLE_NAME
------------------------------ ------------------------------
SYSTEM moj_dump_job
SYSTEM moj_job_data_pump
drop table moj_dump_job;
Error starting at line : 1 in command -
drop table moj_dump_job
Error report -
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
我厌倦了丢掉这份工作,但是没用:
select owner_name, job_name
from DBA_DATAPUMP_JOBS;
OWNER_NAME JOB_NAME
------------------------------ ------------------------------
SYSTEM moj_job_data_pump
SYSTEM moj_dump_job
BEGIN
dbms_scheduler.drop_job(job_name => 'moj_dump_job');
END;
Error starting at line : 13 in command -
BEGIN
dbms_scheduler.drop_job(job_name => 'moj_dump_job');
END;
Error report -
ORA-27475: "SYSTEM.MOJ_DUMP_JOB" must be a job
ORA-06512: at "SYS.DBMS_ISCHED", line 213
ORA-06512: at "SYS.DBMS_SCHEDULER", line 657
ORA-06512: at line 2
27475. 00000 - "unknown %s \"%s\".\"%s\""
*Cause: The specified object did not exist, privileges were not granted,
or the object was of the wrong type.
*Action: Specify an object of the correct type on which you have privileges.
您知道我该怎么办吗?在表名称之前使用架构名称没有帮助。 最好的问候,Darek
答案 0 :(得分:0)
感谢您的帮助。工作正常。
drop table "moj_dump_job"
drop table "moj_job_data_pump";
Table "moj_dump_job" dropped.
Table "moj_job_data_pump" dropped.
现在
select *
from dba_tables
where table_name in ('moj_dump_job'
, 'moj_job_data_pump');
select owner_name, job_name
from DBA_DATAPUMP_JOBS;
两个语句均不返回任何行。完美,但是在视图-> dba->数据泵->导出作业下,这两个表仍然可见。如何将它们从树上掉下来?
答案 1 :(得分:0)
默认情况下,它不起作用的原因Oracle将作业名称更改为大写。为了避免它需要使用'"my_job"'
根据Oracle文档
按照SQL命名规则在 DBMS_SCHEDULER软件包。默认情况下,调度程序对象名称为 大写,除非它们被双引号引起来。例如, 创建作业时,job_name =>'my_job'与job_name =>相同 'My_Job'和job_name =>'MY_JOB',但不同于job_name => '“我的工作”'。在以下情况下,也要遵循这些命名规则: 调度程序对象名称的逗号分隔列表用于 DBMS_SCHEDULER软件包。