DBMS_LIVE_FEED 程序包参考

本章提供有关在 Data Studio 中与 Data Load Tool 一起使用的软件包的信息。DBMS_LIVE_FEED 主题还介绍了 DBMS_LIVE_FEED 软件包中包含的过程。

DBMS_LIVE_FEED 子程序概要

DBMS_LIVE_FEED 程序包简化了常见操作,例如按需运行实时表馈送,或由于基于对象存储存储桶中的新对象对表进行通知驱动的更新。

DBMS_LIVE_FEED 程序包子程序

下表列出了 DBMS_LIVE_FEED 子程序并简要介绍了这些子程序。

子程序 说明
创建 _for_storage_link

此过程为存储链路创建实时馈送。

创建目录

此过程为目录创建实时馈送。

创建 _for_url

此过程从 URL 创建实时源。

modify_live_feed

此过程将修改实时馈送。

drop_live_feed

此过程会丢弃实时馈送。

加载新内容

此过程将加载现有实时馈送中的新内容。

get_notification_key

此过程从实时馈送中检索通知密钥。

get_confirmation_url

此过程从 Live Feed 接收确认 URL。

get_notification_state

此过程从实时馈送接收通知状态。

为存储链接创建过程

此过程从云存储链接创建实时表馈送。云存储链接是 OCI 存储桶 URI 与本地身份证明名称之间的命名关联。

语法
procedure create_for_storage_link(live_feed_name     IN VARCHAR2,
                                           table_name         IN VARCHAR2,
                                           storage_link_name  IN VARCHAR2,
                                           schema             IN VARCHAR2 DEFAULT NULL,
                                           table_schema       IN VARCHAR2 DEFAULT NULL,
                                           column_list        IN CLOB     DEFAULT NULL,
                                           object_type        IN VARCHAR2 DEFAULT NULL,
                                           object_format      IN VARCHAR2 DEFAULT NULL,
                                           object_filter      IN VARCHAR2 DEFAULT NULL,
                                           object_filter_type IN VARCHAR2 DEFAULT NULL,
                                           scheduled          IN BOOLEAN  DEFAULT NULL,
                                           scheduler_interval IN VARCHAR2 DEFAULT NULL,
                                           notifications      IN BOOLEAN  DEFAULT NULL,
                                           job_class          IN VARCHAR2 DEFAULT NULL,
                                           start_date         IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                                           end_date           IN TIMESTAMP WITH TIME ZONE DEFAULT NULL);

DBMS_ LIVE_FEED 参数

如果要访问 DBMS_LIVE_FEED 过程,请使用以下参数。

Parameter (参数) 说明

live_feed_name

要创建的 Live Feed 的名称。

storage_link_name

云存储链接的名称。链路的名称应遵循标准的 Oracle 命名约定。

table_name

实时馈送将从云对象存储将数据加载到的 Autonomous Database 目标表的名称。

Object_filter

实时馈送中的数据将加载到 Autonomous Database 实例中以访问云对象存储的目标表的名称。

object_filter_type

正则表达式,用于将实时表馈送仅限于存储桶中与表达式匹配的那些文件。它可以是正则表达式或 glob,具体取决于 object_filter_type 参数。

scheduled

默认值为 TRUE。如果为 TRUE,则可以设置运行实时表馈送对象的调度。

notifications

默认值为 FALSE。当 TRUE 时,实时馈送工具允许对象存储通知您的实时馈送有要加载的新文件。

schema

方案的名称。

实时源的模式的名称。目前仅支持当前方案。

table_schema

目标表的方案。

object_type

对象的类型。您可以加载的文件类型是 CSV、JSON 和 Parquet。

object_format

这是 SQL 加载程序选项之一。

它接受 DBMS_CLOUD.COPY_DATA 过程接收的格式。

scheduler_interval

此参数使用 DBMS_SCHEDULER 语法显示实时馈送的运行间隔。

job_class

调度程序作业类。值为 TPURGENT,TP,HIGH,MEDIUMLOW

start_date

实时馈送作业的开始日期。

end_date

Live Feed 作业的结束日期。

注意:

上表中列出了下述所有过程的参数。

范例

在此示例中,在给定 URL 上创建一个名为 MYLIVEFEED 的实时馈送。

SQL> BEGIN
   dbms_live_feed.create_for_storage_link(
     live_feed_name => 'MYLIVEFEED',
     storage_link_name => 'DATATOOLS_LF_BUCKET',
     table_name => 'MALTESE',
     object_filter => 'fndcalday?.csv',
     object_filter_type => 'GLOB',
     scheduled => false,
     notifications => false);
end;
/;
PL/SQL procedure successfully completed.

为目录创建过程

此过程从目录创建实时表源。

语法

procedure create_for_directory(live_feed_name     IN VARCHAR2,
                                 table_name         IN VARCHAR2,
                                 directory_name     IN VARCHAR2,
                                 schema             IN VARCHAR2 DEFAULT NULL,
                                 table_schema       IN VARCHAR2 DEFAULT NULL,
                                 column_list        IN CLOB     DEFAULT NULL,
                                 object_type        IN VARCHAR2 DEFAULT NULL,
                                 object_format      IN VARCHAR2 DEFAULT NULL,
                                 object_filter      IN VARCHAR2 DEFAULT NULL,
                                 object_filter_type IN VARCHAR2 DEFAULT NULL,
                                 scheduled          IN BOOLEAN  DEFAULT NULL,
                                 scheduler_interval IN VARCHAR2 DEFAULT NULL,
                                 notifications      IN BOOLEAN  DEFAULT NULL,
                                 job_class          IN VARCHAR2 DEFAULT NULL,
                                 start_date         IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                                 end_date           IN TIMESTAMP WITH TIME ZONE DEFAULT NULL);

为 URL 创建过程

此过程从 URL 创建实时表源。

语法

 procedure create_for_url(live_feed_name     IN VARCHAR2,
                           table_name         IN VARCHAR2,
                           url                IN VARCHAR2,
                           credential_name    IN VARCHAR2,
                           schema             IN VARCHAR2 DEFAULT NULL,
                           table_schema       IN VARCHAR2 DEFAULT NULL,
                           column_list        IN CLOB     DEFAULT NULL,
                           object_type        IN VARCHAR2 DEFAULT NULL,
                           object_format      IN VARCHAR2 DEFAULT NULL,
                           object_filter      IN VARCHAR2 DEFAULT NULL,
                           object_filter_type IN VARCHAR2 DEFAULT NULL,
                           scheduled          IN BOOLEAN  DEFAULT NULL,
                           scheduler_interval IN VARCHAR2 DEFAULT NULL,
                           notifications      IN BOOLEAN  DEFAULT NULL,
                           job_class          IN VARCHAR2 DEFAULT NULL,
                           start_date         IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                           end_date           IN TIMESTAMP WITH TIME ZONE DEFAULT NULL);

修改实时馈送过程

此过程将修改实时表馈送。

语法

procedure modify_live_feed(live_feed_name     IN VARCHAR2,
                             schema             IN VARCHAR2 DEFAULT NULL,
                             scheduled          IN BOOLEAN  DEFAULT NULL,
                             scheduler_interval IN VARCHAR2 DEFAULT NULL,
                             notifications      IN BOOLEAN  DEFAULT NULL,
                             job_class          IN VARCHAR2 DEFAULT NULL,
                             start_date         IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
                             end_date           IN TIMESTAMP WITH TIME ZONE DEFAULT NULL);

范例

在此示例中,修改了名为 MYLIVEFEED 的实时馈送。

begin
   dbms_live_feed.modify_live_feed(
     live_feed_name => 'MYLIVEFEED',
     scheduled => true,
     scheduler_interval => 'FREQ=daily;INTERVAL=1',
     notifications => true);
end;
/

Drop Live Feed 过程

此过程将删除实时表馈送。

语法

procedure drop_live_feed(live_feed_name     IN VARCHAR2,
                                  schema             IN VARCHAR2 DEFAULT NULL);

范例

在此示例中,删除了名为 MYLIVEFEED 的实时馈送。

begin
   dbms_live_feed.drop_live_feed(live_feed_name => 'MYLIVEFEED');
end;
/

加载新内容过程

此过程将在馈送中加载新内容。

语法

 procedure load_new_content(live_feed_name IN VARCHAR2,
                                     schema         IN VARCHAR2 DEFAULT NULL);

获取通知密钥过程

此过程接收实时表馈送通知密钥。它用于启用通知的实时馈送,以构建用于提供云服务的通知 URL。按照创建基于通知的实时表源一章中的说明创建基于通知的实时源。

语法

function get_notification_key(live_feed_name IN VARCHAR2,
                                       schema         IN VARCHAR2 DEFAULT NULL)
    return VARCHAR2;

获取确认 URL

此过程会收到确认 URL,验证端点是否可以接收通知。

您必须访问此 URL 才能启用从云服务接收的通知。由于数据库防火墙限制,无法确认自动启用通知。单击此 URL 以启用通知,否则您将不会收到任何通知。

语法

function get_confirmation_url(live_feed_name IN VARCHAR2,
                                       schema         IN VARCHAR2 DEFAULT NULL)
    return VARCHAR2;

获取通知状态

此过程接收实时馈送作业执行的通知状态。

语法

 function get_notification_state(live_feed_name IN VARCHAR2,
                                          schema         IN VARCHAR2 DEFAULT NULL)
    return VARCHAR2;