Oracle建表时表名小写且加双引号的注意事项

本文记录了使用SQL创建、删除表的操作过程及遇到的错误提示。通过具体的SQL命令演示了如何创建名为test的表,并在尝试删除该表时遇到表不存在的错误提示。最终成功删除表并验证了操作的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL> CREATE TABLE "test" ("ID" int, "name" NVARCHAR2(2000));
表已创建。

SQL> drop table test;
drop table test
           *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> drop table TEST;
drop table TEST
           *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> SELECT * FROM "TEST";
SELECT * FROM "TEST"
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> SELECT * FROM "test";
未选定行


SQL> drop table "test";
表已删除。
<think>好的,我现在要回答用户关于如何在Oracle数据库中查看指定的创间的问题。首先,我需要回忆一下Oracle的数据字典视图,因为这类信息通常存储在那里。 用户提到的是“创间”,所以首先想到的是DBA_OBJECTS视图,因为里面包含了对象的创间(CREATED字段)。但需要考虑用户的权限问题,普通用户可能需要查询USER_OBJECTS或者ALL_OBJECTS,这取决于他们是否有DBA权限。 接下来,可能需要给出具体的SQL语句,例如: SELECT created FROM dba_objects WHERE object_name = '' AND owner = '所属用户'; 但需要提醒用户替换和所属用户,并注意权限问题,如果用户没有DBA权限,可能需要使用USER_OBJECTS,这候不需要指定owner。 另外,可能还有其他方法,比如通过DBA_TABLES视图,但记得DBA_TABLES可能也包含CREATED字段,不过需要确认。或者检查是否有其他视图如DBA_SEGMENTS,但那里可能记录的是段创间,不一定准确。 需要提醒用户,如果被移动或重过,创间可能不是最初的,这候可能需要审计日志或备份记录,但这是更高级的操作,一般情况可能不需要。 还要注意大小写的问题,Oracle默认对象是大写的,所以用户查询可能需要用大写,或者使用引号保持原大小写,但通常议使用大写。 最后,总结步骤,给出不同权限下的查询方式,并注意事项,确保回答全面准确。</think>在 Oracle 数据库中查看指定的创间,可以通过以下步骤实现: --- ### 方法 1:通过 `DBA_OBJECTS` 视图(需 DBA 权限) ```sql SELECT owner, object_name AS table_name, created FROM dba_objects WHERE object_name = 'YOUR_TABLE_NAME' -- 替换为实际(需大写) AND owner = 'TABLE_OWNER' -- 替换为的所属用户(需大写) AND object_type = 'TABLE'; ``` #### 注意事项: 1. 需要 `DBA_OBJECTS` 的查询权限(通常需要 DBA 角色)。 2. 和用户需大写(除非使用了双引号强制小写)。 --- ### 方法 2:通过 `USER_OBJECTS` 视图(当前用户下的) ```sql SELECT object_name AS table_name, created FROM user_objects WHERE object_name = 'YOUR_TABLE_NAME' -- 替换为实际(需大写) AND object_type = 'TABLE'; ``` #### 特点: - 仅查询当前用户拥有的。 - 无需指定 `owner` 字段。 --- ### 方法 3:通过 `ALL_OBJECTS` 视图(所有有权访问的) ```sql SELECT owner, object_name AS table_name, created FROM all_objects WHERE object_name = 'YOUR_TABLE_NAME' -- 替换为实际(需大写) AND object_type = 'TABLE'; ``` #### 特点: - 可查询当前用户有权限访问的所有。 --- ### 注意事项: 1. **大小写敏感**:Oracle 默认将对象存储为大写。如果使用了双引号(如 `CREATE TABLE "MyTable"`),则需在查询保留大小写: ```sql WHERE object_name = 'MyTable' -- 带双引号需严格匹配大小写 ``` 2. **间准确性**:`CREATED` 字段记录的是的创间,但如果被重(如 `DROP` 后重新 `CREATE`),间会被重置。 3. **替代方案**:如果无法通过上述方法获取间,可检查数据库审计日志(需提前开启审计功能)或备份记录。 --- ### 示例输出: ``` OWNER TABLE_NAME CREATED ---------- --------------- ------------------- HR EMPLOYEES 2023-10-01 09:30:45 ``` 通过以上方法,您可以快速定位的创间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值