GoLand 2025.2 Help

数据提取器

启用 数据库工具和 SQL 插件

此功能依赖于 数据库工具和 SQL 插件,该插件在 GoLand 中默认捆绑并启用。 如果相关功能不可用,请确保未禁用该插件。

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 数据库工具和 SQL 插件,并勾选插件名称旁边的复选框。

数据提取器 用于设置在编辑器中复制或查看数据的规则(在 文本 编辑器视图模式下)。 您可以从 数据提取程序 列表中选择一个默认提取器,该列表位于 导出数据 图标(导出数据图标 )附近,配置现有提取器,或使用 Groovy 或 JavaScript 创建自定义提取器。

数据编辑器工具栏上的数据提取器列表

最后选择的提取器将成为新打开编辑器标签页的默认提取器。 对于 MongoDB,默认提取器始终为 JSON。

在以下视频中,使用 CSV 数据提取器复制数据,并在 文本 编辑器视图模式下使用 SQL 更新管道分隔 数据提取器查看数据。

使用数据提取器,您可以将数据库数据导出为 SQL 语句及多种格式。 将数据导出为文件时,每个表或视图会创建一个单独的文件。 有关导出的更多信息,请参阅 导出部分

支持的文件格式

可用脚本和支持的文件格式列表如下:

  • 预定义脚本。 使用它们可将数据导出为一组 INSERTUPDATE 语句、 TSV 和 CSV 文件、 Excel XLSX 文件、 Markdown 、HTML 表格和 JSON 格式。

    1. 内置

      脚本

      文件格式

      SQL Inserts

      .sql

      SQL Updates

      Where 子句

    2. CSV

      脚本

      文件格式

      CSV

      .csv

      TSV

      .tsv

      竖线分隔

      .txt

      使用 CSV 格式配置 创建基于 CSV 或任何 DSV 格式的自定义格式。

    3. 脚本化

      脚本

      文件格式

      CSV

      .csv

      TSV

      .tsv

      Excel

      .xlsx .xls

      HTML(groovy)

      .html

      HTML(js)

      JSON

      .json

      Markdown

      .md

      单行

      .sql

      SQL-Insert-Multirow

      SQL-Insert-Statements

      格式化

      .txt

      XML

      .xml

  • 自定义数据提取器。使用 Groovy 或 JavaScript 和提供的 API 创建。

为分隔符分隔值配置提取器

您可以扩展默认功能,并基于 CSV 或任何 DSV 格式创建自定义格式。 在其设置中,您可以设置行和表头的分隔符、定义 NULL 值的文本、指定引号、为分隔符分隔值的格式创建新提取器。

  1. 从数据提取器列表中选择 配置 CSV 格式

  2. CSV 格式 对话框中,点击 添加格式 图标 添加格式图标

  3. 指定新格式的名称(例如 Confluence Wiki 标记)。

  4. 定义格式设置:设置行和表头的分隔符,定义 NULL 值的文本,指定引号。 点击 确定

    创建格式后,您可以在 导出数据 图标(导出数据图标 )旁的下拉列表中选择它。

有关 CSV 格式 对话框的更多信息,请参阅 参考

添加自定义提取器

您可以创建一个使用 Groovy 或 JavaScript 编写的自定义提取器。

GitHub 仓库 中查找用于脚本化扩展开发的预配置项目。

  1. 项目 工具窗口中,导航至 临时文件和控制台| 扩展|数据库工具和 SQL|data|extractors

  2. 右键单击 extractors 节点并选择 新建(N)| 文件

  3. 键入文件名(例如: PHP.array.groovy ),其中:

    • PHP :此名称将显示在 extractor 菜单中。

    • array :extractor 的输出结果。

    • groovy :脚本的扩展名。

  4. 在新文件中输入或粘贴 extractor 的代码。 您可以使用 extractors 文件夹中的其他 extractor 的代码编写自己的 extractor。 您还可以尝试以下 extractor:

  5. 从 extractor 列表中选择一个 extractor。

    请参考以下在 GoLand 中添加 PHP-array extractor 的示例。

自定义数据提取器的 API

请使用以下 API 创建自定义数据 extractor。

绑定

方法(Groovy 与 JavaScript)

描述

DIALECT

getDbms() ,后接以下任意方法之一:

  • isOracle

  • isMysql

  • isPostgres

  • isBigQuery

  • isRedshift

  • isGreenplum

  • isVertica

  • isMicrosoft

  • isSybase

  • isDb2

  • isHsqldb

  • isH2

  • isDerby

  • isSqlite

  • isExasol

  • isClickHouse

  • isCassandra

  • isHive

  • isSpark

  • isSnowflake

  • isMongo

  • isCouchbase

  • isCockroach

  • isTransactSql

  • isDocumentOriented

数据库方言

TABLE

  • getName()

  • getParent().getName()

数据库表元数据

ALL_COLUMNS

  • int columnNumber()

  • String name()

查询结果或当前打开的表编辑器中的所有列的列表。

COLUMNS

  • int columnNumber()

  • String name()

查询结果或当前打开的表编辑器中的选定列的列表。

FORMATTER

  • format(Row, Column)

  • formatValue(Object, Column)

  • getTypeName(Object, Column)

  • isStringLiteral(Object, Column)

默认格式化方法。

OUT

append(String)

extractor 的输出结果。

ROWS

  • int rowNumber()

  • boolean first()

  • boolean last()

  • java.util.List<java.lang.Object> data()

  • Object value(Column)

行数据流。

TRANSPOSED

指示表编辑器是否处于转置模式的布尔值。

示例

您可以使用以下简单的 CSV 数据 extractor 作为创建自定义数据 extractor 的基础。 该数据 extractor 的完整版本可在 GoLand 中找到。 要查找它,请在 项目 工具窗口中导航至 临时文件和控制台| 扩展|数据库工具和 SQL|data|extractors

ROWS.each { row -> COLUMNS.eachWithIndex { column, i -> if (i > 0) OUT.append(",") OUT.append(FORMATTER.format(row, column)) } OUT.append("\n") }

参考

CSV 格式对话框

要打开此对话框,请单击工具栏中的 数据提取程序 列表,然后选择 配置 CSV 格式

此对话框包含将表数据转换为分隔值格式(例如 CSV、TSV)及反向转换的设置。

预览限制为 10 条记录,以防止加载其他数据。 更改设置时,预览会相应更新。

项目

描述

格式

选择一个模板以将文件数据成功转换为表格。 您可以修改预定义模板的设置或添加新模板。 要添加模板,请点击 添加格式 按钮(添加格式图标)。

使用 添加格式)、 移除格式)、 )与 )按钮创建、删除及重新排序格式;使用 复制格式复制格式图标 )复制选定格式。

值分隔符(S)

选择或输入用于分隔值的字符。

行分隔符(R)

选择或输入用于分隔行的字符。

null 值文本(N)

选择或输入要用于包含 NULL 值的单元格的文本。

添加行前缀/后缀

点击链接并输入每行的前缀与后缀。 前缀与后缀字符序列除行分隔符之外也用于标识行的起止。

引用

引号 下方区域中的每一行均为引用模式。 一个引用模式包括:

  • :插入在值前的引用字符。

  • :插入在值后的引用字符。

  • 转义 :用于处理值中包含引用字符的转义方式或字符。 <duplicate> 值表示如果值中出现引用字符,则将其写为两个字符。 您可以指定自定义转义字符。

如果存在超过一个模式,将使用第一个模式。

使用 添加)、 移除)、 )与 )按钮来创建、删除与重新排序引用模式。

为值加引号(Q)

选择何时使用引用字符括住值。

  • 从不 :不引用值。

  • 需要时 :当值中包含值分隔符或行分隔符时进行引用。

  • 始终 :引用所有值。

清除空格(W)

忽略或移除空白字符。 清除此复选框时,空白字符会视为值的一部分。

第一行是头(H)

将首行视为包含列名的行。

第一列是头(H)

将首列视为包含行名的列。

最后修改日期: 2025年 9月 26日