View/edit table 结构 SQL 在 Base 中

View/edit table structure with SQL in Base

我是 JPablos,我正在尝试查看 "orders" table.

的结构

我正在使用 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: Access is denied: LISTAGG in statement [select listagg(]

注意:显然...在 Base UI 中的简单方法:select "orders" / 右键单击​​ / 编辑,是的,它会打开 table 的结构"orders"。但是,我想用 SQL 来做。

提前致谢

JPablos

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

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

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

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

其中 "Students" 是用于此答案的 table 的名称。

SQL 语句报告:

Result of the query

此致

JPablos