【问题标题】:Oracle database 11: select * from table failsOracle 数据库 11:从表中选择 * 失败
【发布时间】:2017-06-08 09:19:54
【问题描述】:

我有一个奇怪的问题。在我们尝试运行的生产数据库服务器之一中

select * from SCHEMA_NAME.TABLE_NAME

当我们运行查询时,我们会收到无效标识符错误。但是当我们选择一个特定的列并在同一个表上运行相同的选择查询时,我们能够得到输出。

请帮助我了解根本原因。

已创建类型:

create or replace 
TYPE           "TEST_TYPE" is object
(
MULTIROW_ID VARCHAR2(100 CHAR),
LOSS_ENTRY_TYPE VARCHAR2(1000 CHAR),
SUB_CATEGORY    VARCHAR2(1000 CHAR),
LOSS_AMOUNT NUMBER,
LOSS_ENTRY_CURR  VARCHAR2(100 CHAR)
);

类型 2 已创建:

create or replace 
TYPE           "TEST_TYPE1" AS TABLE OF TEST_TYPE;

使用上述表类型列的主要创建表查询:

CREATE TABLE "MS_TEST_DATA" 
   (    "REGION" VARCHAR2(4000 CHAR), 
    "Entries" "TEST_TYPE1" , 
    "ILE_DET_FUNCTION_OF_DISC_COM" VARCHAR2(4000 CHAR)
   )
    NESTED TABLE "Entries" STORE AS "TEST_TYPE3";

如果我在本地运行它,我可以使用select * 查询访问表。 但在服务器中我没有所有的访问权限。在那里,我对表具有只读访问权限。我只能运行select * 查询。

【问题讨论】:

  • Edit您的问题并为相关表格添加create table 语句。 Formatted textno screen shots
  • 发布您的代码(作为文本)。突出显示第 39 行。
  • 它是一个真正的表,而不是一个视图,物化视图,cte,查询,...?
  • 它的真实表。但嵌套表
  • 您还没有向我们准确展示脚本中的第 39 行是什么。您在生产中的对象、表和列名称与本地测试中的名称是否相同,以及您所展示的内容?查询两个环境时,您使用的是相同的客户端和版本吗?

标签: oracle select


【解决方案1】:

避免在 DDL 脚本中使用双引号。如果是系统生成的,请编写脚本以尽可能消除双引号。

【讨论】:

    猜你喜欢
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2020-11-06
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    相关资源
    最近更新 更多