【问题标题】:View/edit table structure with SQL in Base在 Base 中使用 SQL 查看/编辑表结构
【发布时间】:2016-08-30 09:41:33
【问题描述】:

我是 JPablos,我正在尝试查看“订单”表的结构。

我正在使用 Base

LibreOffice Versión: 5.2.0.4 Id. de compilación: 1:5.2.0~rc4-0ubuntu1~xenial2 Subprocesos de CPU: 1; Versión de SO: Linux 4.4

SQL 语句

select listagg(column_name ||','|| data_type ||','||   case
 when data_type in ('VARCHAR2', 'NVARCHAR2', 'CHAR', 'RAW')
   then to_char(data_length)
 when data_type = 'NUMBER' and (data_precision is not null or data_scale is not null)
   then data_precision || case
 when data_scale > 0 then '.' || data_scale
 end
end, ',') within group (order by column_id) 
from all_tab_columns where table_name = 'orders';

然后 SQL 通知我

1:访问被拒绝:LISTAGG in statement [select listagg(]

注意:显然...基本 UI 中的简单方法:选择“订单”/右键单击/编辑,是的,它会打开“订单”表的结构。但是,我想用 SQL 来做。

提前致谢

JPablos

【问题讨论】:

    标签: sql database-design hsqldb


    【解决方案1】:

    SQL 语句是为 Oracle 数据库编写的。 HSQLDB 不支持LISTAGG 函数。

    如果您将 LibreOffice base 与最新的 HSQLDB 2.3.4(而不是捆绑的 1.8.0 版本)一起使用,则可以使用 HSQLDB 函数GROUP_CONCAT

    【讨论】:

    【解决方案2】:

    毕竟做我上面问题的查询对象是一条SQL语句,是:

    SELECT * FROM "INFORMATION_SCHEMA"."SYSTEM_COLUMNS" WHERE "TABLE_NAME" = 'Students'
    

    其中“学生”是用于此答案的表格的名称。

    SQL 语句报告:

    Result of the query

    最好的问候

    JPablos

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      相关资源
      最近更新 更多