Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (E-O)

 

EVENT_PARAMETER 函数 [System]

提供事件处理程序的上下文信息。

语法
EVENT_PARAMETER( context-name )
context-name:
  AppInfo
| ConnectionID
| DisconnectReason
| EventName
| Executions
| MirrorServerName
| NumActive
| ScheduleName
| SQLCODE
| TableName
| User
| condition-name
参数
  • context-name   其中一个预设字符串。这些字符串必须放在引号中,它们区分大小写,并传递以下信息:

    • AppInfo   导致事件被触发的连接的 AppInfo 连接属性的值。使用以下语句查看事件上下文外部的属性的值:
      SELECT CONNECTION_PROPERTY( 'AppInfo' );

      此参数对 Connect、Disconnect、ConnectFailed、BackupEnd 和 RAISERROR 事件有效。AppInfo 字符串包含了为嵌入式 SQL、ODBC、OLE DB、ADO.NET 和 iAnywhere JDBC 驱动程序连接建立客户端连接的计算机名和应用程序名。

    • ConnectionId   导致事件被触发的连接的连接 ID。

    • DisconnectReason   表示连接终止原因的字符串。此参数仅对 Disconnect 事件有效。可以接受的结果包括:

      • abnormal   由于客户端应用程序在与数据库断开连接之前异常中止而导致断开连接,或者是在客户端和服务器计算机之间发生通信故障而导致断开连接。

      • connect failed   连接尝试失败。

      • drop connection   执行了一条 DROP CONNECTION 语句。

      • from client   由客户端应用程序断开连接。

      • inactive   在由 -ti 服务器选项所指定的时间内没有接收到请求。

      • liveness   在由 -tl 服务器选项所指定的时间内没有接收到活动包。

    • EventName   已触发的事件的名称。

    • Executions   事件处理程序执行的次数。

    • MirrorServerName   失去与数据库镜像系统中主服务器连接的镜像服务器或仲裁服务器的名称。

    • NumActive   事件处理程序的活动实例数。如果想限制事件处理程序,以便在任何给定时间仅执行一个实例,则此参数会有用处。

    • ScheduleName   导致事件被触发的调度的名称。如果该事件使用 TRIGGER EVENT 手工触发或者为系统事件,则结果为空字符串。如果在创建调度时没有显式地为其指派名称,则其名称将是事件的名称。

    • SQLCODE   连接失败期间所发生错误的 SQLCODE。此参数仅对 ConnectFailed 事件有效。

    • TableName   表名,与 RemainingValues 一起使用。

    • 用户   导致事件被触发的用户的用户 ID。

    此外,可以从 EVENT_PARAMETER 函数访问 EVENT_CONDITION 函数的任何有效 condition-name 参数。

    下列表列出了 context-name 值及对其有效的系统事件类型。

    Context-name 值 有效系统事件类型
    AppInfo BackupEnd、"Connect"、ConnectFailed、"Disconnect"、"RAISERROR"、用户事件
    ConnectionID BackupEnd、"Connect"、"Disconnect"、Global Autoincrement、"RAISERROR"、用户事件
    DisconnectReason "Disconnect"
    EventName all
    Executions all
    NumActive all
    SQLCODE ConnectFailed
    TableName GlobalAutoincrement
    用户 BackupEnd、"Connect"、ConnectFailed、"Disconnect"、GlobalAutoincrement、"RAISERROR"、用户事件

返回值

VARCHAR

注释

传递给事件的最大值大小受到服务器最大页面大小(-gp 服务器选项)的限制。过长的值将被截断成小于最大页面大小。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下示例说明如何将字符串参数传递给一个事件。该事件显示其在数据库服务器消息窗口中触发的时间。

CREATE EVENT ev_PassedParameter
HANDLER
BEGIN
  MESSAGE 'ev_PassedParameter - was triggered at ' || event_parameter( 'time' );
END;
TRIGGER EVENT ev_PassedParameter( "Time"=string(current timestamp ) );