You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL*Plus中显示带双引号的表名与列名?

在SQL*Plus中查看带双引号的表名和列名

方法1:查询数据字典视图

Oracle的数据字典会完整存储带双引号的对象名称(含原始大小写),直接通过以下查询即可获取:

  • 查看当前用户下带双引号的表名(这类表名通常与大写形式不一致,比如小写或包含特殊字符):

    SELECT TABLE_NAME 
    FROM USER_TABLES 
    WHERE TABLE_NAME != UPPER(TABLE_NAME);
    

    若表名带引号但本身是大写,上述语句无法筛选,可直接查询所有表名:

    SELECT TABLE_NAME FROM USER_TABLES;
    
  • 查看指定表的所有列名(含带双引号的):
    替换'目标表名'为你要查询的表名(若表名是带引号的小写/特殊格式,需精确匹配大小写):

    SELECT COLUMN_NAME 
    FROM USER_TAB_COLUMNS 
    WHERE TABLE_NAME = '目标表名';
    

    筛选带双引号的列可使用:

    SELECT COLUMN_NAME 
    FROM USER_TAB_COLUMNS 
    WHERE TABLE_NAME = '目标表名' 
      AND COLUMN_NAME != UPPER(COLUMN_NAME);
    

方法2:生成CREATE TABLE语句

利用DBMS_METADATA.GET_DDL函数可直接导出表的创建语句,包含所有带双引号的定义:

  1. 先设置SQL*Plus的显示长度,避免内容截断:
    SET LONG 10000;
    
  2. 执行生成语句(替换'目标表名',若表名带引号需保留大小写,例如表是"my_table"则写成'"my_table"'):
    SELECT DBMS_METADATA.GET_DDL('TABLE', '目标表名') FROM DUAL;
    

注意事项

  • 若需查看其他用户的对象,将USER_TABLES和USER_TAB_COLUMNS替换为ALL_TABLES和ALL_TAB_COLUMNS(需对应权限),或DBA_TABLES/DBA_TAB_COLUMNS(需DBA权限)。
  • 带双引号的对象名在SQL*Plus中引用时,必须用双引号包裹并精确匹配大小写,否则会报错或匹配到错误对象。

内容的提问来源于stack exchange,提问作者mempie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:27:31