计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
本文导读

展开导读

PKG_SERVICE

更新时间:2024-08-20 GMT+08:00

PKG_SERVICE支持的所有接口请参见表1

表1 PKG_SERVICE

接口名称

描述

PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE

确认该CONTEXT是否已注册。

PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS

取消所有注册的CONTEXT。

PKG_SERVICE.SQL_REGISTER_CONTEXT

注册一个CONTEXT。

PKG_SERVICE.SQL_UNREGISTER_CONTEXT

取消注册该CONTEXT。

PKG_SERVICE.SQL_SET_SQL

向CONTEXT设置一条SQL语句,目前只支持SELECT。

PKG_SERVICE.SQL_RUN

在一个CONTEXT上执行设置的SQL语句。

PKG_SERVICE.SQL_NEXT_ROW

读取该CONTEXT中的下一行数据。

PKG_SERVICE.SQL_GET_VALUE

读取该CONTEXT中动态定义的列值

PKG_SERVICE.SQL_SET_RESULT_TYPE

根据类型OID动态定义该CONTEXT的一个列。

PKG_SERVICE.JOB_CANCEL

通过任务ID来删除定时任务。

PKG_SERVICE.JOB_FINISH

禁用或者启用定时任务。

PKG_SERVICE.JOB_SUBMIT

提交一个定时任务。作业号由系统自动生成或由用户指定。

PKG_SERVICE.JOB_UPDATE

修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。

PKG_SERVICE.SUBMIT_ON_NODES

提交一个任务到所有节点,作业号由系统自动生成。

PKG_SERVICE.ISUBMIT_ON_NODES

提交一个任务到所有节点,作业号由用户指定。

PKG_SERVICE.SQL_GET_ARRAY_RESULT

获取该CONTEXT中返回的数组值。

PKG_SERVICE.SQL_GET_VARIABLE_RESULT

获取该CONTEXT中返回的列值。

  • PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE

    该函数用来确认一个CONTEXT是否已注册。该函数传入想查找的CONTEXT ID,如果该CONTEXT存在返回TRUE,反之返回FALSE。

    PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE函数原型为:
    1
    2
    3
    4
    PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE(
     context_id     IN INTEGER 
    )
    RETURN BOOLEAN;
    
    表2 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE接口说明

    参数名称

    描述

    context_id

    想查找的CONTEXT ID号。

  • PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS

    该函数用来取消所有CONTEXT

    PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS函数原型为:

    1
    2
    3
    PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS(
    )
    RETURN VOID;
    

  • PKG_SERVICE.SQL_REGISTER_CONTEXT

    该函数用来打开一个CONTEXT,是后续对该CONTEXT进行各项操作的前提。该函数不传入任何参数,内部自动递增生成CONTEXT ID,并作为返回值返回给INTEGER定义的变量。

    PKG_SERVICE.SQL_REGISTER_CONTEXT函数原型为:

    1
    2
    3
    DBE_SQL.REGISTER_CONTEXT(
    )
    RETURN INTEGER;
    

  • PKG_SERVICE.SQL_UNREGISTER_CONTEXT

    该函数用来关闭一个CONTEXT,是该CONTEXT中各项操作的结束。如果在存储过程结束时没有调用该函数,则该CONTEXT占用的内存仍然会保存,因此关闭CONTEXT非常重要。由于异常情况的发生会中途退出存储过程,导致CONTEXT未能关闭,因此建议存储过程中有异常处理,将该接口包含在内。

    PKG_SERVICE.SQL_UNREGISTER_CONTEXT函数原型为:

    1
    2
    3
    4
    PKG_SERVICE.SQL_UNREGISTER_CONTEXT(
     context_id     IN INTEGER 
    )
    RETURN INTEGER;
    
    表3 PKG_SERVICE.SQL_UNREGISTER_CONTEXT接口说明

    参数名称

    描述

    context_id

    打算关闭的CONTEXT ID号。

  • PKG_SERVICE.SQL_SET_SQL

    该函数用来解析给定游标的查询语句,被传入的查询语句会立即执行。目前仅支持SELECT查询语句的解析,且语句参数仅可通过text类型传递,长度不大于1G。

    PKG_SERVICE.SQL_SET_SQL函数的原型为:
    1
    2
    3
    4
    5
    6
    PKG_SERVICE.SQL_SET_SQL(
    context_id     IN INTEGER,
    query_string   IN TEXT,
    language_flag  IN INTEGER
    )
    RETURN BOOLEAN;
    
    表4 PKG_SERVICE.SQL_SET_SQL接口说明

    参数名称

    描述

    context_id

    执行查询语句解析的CONTEXT ID。

    query_string

    执行的查询语句。

    language_flag

    版本语言号,指定不同版本的行为。

    • 1为非兼容版本。
    • 2为ORA兼容模式版本。
  • PKG_SERVICE.SQL_RUN

    该函数用来执行一个给定的CONTEXT。该函数接收一个CONTEXT ID,运行后获得的数据用于后续操作。目前仅支持SELECT查询语句的执行。

    PKG_SERVICE.SQL_RUN函数的原型为:
    1
    2
    3
    4
    PKG_SERVICE.SQL_RUN(
    context_id     IN INTEGER,
    )
    RETURN INTEGER;
    
    表5 PKG_SERVICE.SQL_RUN接口说明

    参数名称

    描述

    context_id

    执行查询语句解析的CONTEXT ID。

  • PKG_SERVICE.SQL_NEXT_ROW

    该函数返回执行SQL实际返回的数据行数,每一次运行该接口都会获取到新的行数的集合,直到数据读取完毕获取不到新行为止。

    PKG_SERVICE.SQL_NEXT_ROW函数的原型为:
    1
    2
    3
    4
    PKG_SERVICE.SQL_NEXT_ROW(
    context_id     IN INTEGER,
    )
    RETURN INTEGER;
    
    表6 PKG_SERVICE.SQL_NEXT_ROW接口说明

    参数名称

    描述

    context_id

    执行的CONTEXT ID。

  • PKG_SERVICE.SQL_GET_VALUE

    该函数用来返回给定CONTEXT中给定位置的CONTEXT元素值,该接口访问的是PKG_SERVICE.SQL_NEXT_ROW获取的数据。

    PKG_SERVICE.SQL_GET_VALUE函数的原型为:
    1
    2
    3
    4
    5
    6
    PKG_SERVICE.SQL_GET_VALUE(
    context_id          IN    INTEGER,
    pos                 IN    INTEGER,
    col_type            IN    ANYELEMENT
    )
    RETURN ANYELEMENT;
    
    表7 PKG_SERVICE.SQL_GET_VALUE接口说明

    参数名称

    描述

    context_id

    执行的CONTEXT ID。

    pos

    动态定义列在查询中的位置。

    col_type

    任意类型变量,定义列的返回值类型。

  • PKG_SERVICE.SQL_SET_RESULT_TYPE
    该函数用来定义从给定CONTEXT返回的列,该接口只能应用于SELECT定义的CONTEXT中。定义的列通过查询列表的相对位置来标识,PKG_SERVICE.SQL_SET_RESULT_TYPE函数的原型为:
    1
    2
    3
    4
    5
    6
    7
    PKG_SERVICE.SQL_SET_RESULT_TYPE(
    context_id     IN INTEGER,
    pos            IN INTEGER,
    coltype_oid    IN ANYELEMENT,
    maxsize        IN INTEGER 
    )
    RETURN INTEGER;
    
    表8 PKG_SERVICE.SQL_SET_RESULT_TYPE接口说明

    参数名称

    描述

    context_id

    执行的CONTEXT ID。

    pos

    动态定义列在查询中的位置。

    coltype_oid

    任意类型的变量,可根据变量类型得到对应类型OID。

    maxsize

    定义的列的长度。

  • PKG_SERVICE.JOB_CANCEL

    存储过程CANCEL删除指定的定时任务。

    PKG_SERVICE.JOB_CANCEL函数原型为:

    1
    2
    PKG_SERVICE.JOB_CANCEL(
    id  IN  INTEGER);
    
    表9 PKG_SERVICE.JOB_CANCEL接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    id

    INTEGER

    IN

    指定的作业号。

  • PKG_SERVICE.JOB_FINISH

    存储过程FINISH禁用或者启用定时任务。

    PKG_SERVICE.JOB_FINISH函数原型为:

    1
    2
    3
    4
    PKG_SERVICE.JOB_FINISH(
    id          IN   INTEGER,
    broken       IN   BOOLEAN,
    next_time    IN   TIMESTAMP  DEFAULT  sysdate);
    
    表10 PKG_SERVICE.JOB_FINISH接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    id

    INTEGER

    IN

    指定的作业号。

    broken

    BOOLEAN

    IN

    状态标志位,TRUE代表禁用,FALSE代表启用。根据TRUE或FALSE值更新当前job;如果为空值,则不改变原有job的状态。

    next_time

    TIMESTAMP

    IN

    下次运行时间,默认为当前系统时间。如果参数broken状态为TRUE,则更新该参数为'4000-1-1';如果参数broken状态为FALSE,且如果参数next_time不为空值,则更新指定job的next_time值,如果next_time为空值,则不更新next_time值。该参数可以省略,为默认值。

  • PKG_SERVICE.JOB_SUBMIT

    存储过程JOB_SUBMIT提交一个系统提供的定时任务。

    PKG_SERVICE.JOB_SUBMIT函数原型为:
    1
    2
    3
    4
    5
    6
    PKG_SERVICE.JOB_SUBMIT(
    id            IN   BIGINT,
    content       IN   TEXT,
    next_time     IN   TIMESTAMP DEFAULT sysdate,
    interval_time IN   TEXT  DEFAULT 'null',
    job           OUT  INTEGER);
    
    说明:

    当创建一个定时任务(JOB)时,系统默认将当前数据库和用户名与当前创建的定时任务绑定起来。该接口函数可以通过call或select调用,如果通过select调用,可以不填写出参。如果在存储过程中,则需要通过perform调用该接口函数。如果提交的sql语句任务使用到非public的schema,应该指定表或者函数的schema,或者在sql语句前添加set current_schema = xxx;语句。

    表11 PKG_SERVICE.JOB_SUBMIT接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    id

    BIGINT

    IN

    作业号。如果传入id为NULL,则内部会生成作业ID。

    content

    TEXT

    IN

    要执行的SQL语句。支持一个或多个‘DML’,‘匿名块’,‘调用存储过程的语句’或3种混合的场景。

    next_time

    TIMESTAMP

    IN

    下次作业运行时间。默认值为当前系统时间(sysdate)。如果是过去时间,在提交作业时表示立即执行。

    interval_time

    TEXT

    IN

    用来计算下次作业运行时间的时间表达式,可以是interval表达式,也可以是sysdate加上一个NUMERIC值(例如:sysdate+1.0/24)。如果为空值或字符串"null"表示只执行一次,执行后JOB状态STATUS变成'd' 不再执行。

    job

    INTEGER

    OUT

    作业号。范围为1~32767。当使用select调用pkg_service.job_submit时,该参数可以省略。

  • PKG_SERVICE.JOB_UPDATE

    存储过程UPDATE修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。

    PKG_SERVICE.JOB_UPDATE函数原型为:

    1
    2
    3
    4
    5
    PKG_SERVICE.JOB_UPDATE(
    id             IN   BIGINT,
    next_time      IN   TIMESTAMP,
    interval_time  IN   TEXT,
    content        IN   TEXT);
    
    表12 PKG_SERVICE.JOB_UPDATE接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    id

    INTEGER

    IN

    指定的作业号。

    next_time

    TIMESTAMP

    IN

    下次运行时间。如果该参数为空值,则不更新指定job的next_time值,否则更新指定job的next_time值。

    interval_time

    TEXT

    IN

    用来计算下次作业运行时间的时间表达式。如果该参数为空值,则不更新指定job的interval_time值;如果该参数不为空值,会校验interval_time是否为有效的时间类型或interval类型,则更新指定job的interval_time值。如果为字符串"null"表示只执行一次,执行后JOB状态STATUS变成'd' 不再执行。

    content

    TEXT

    IN

    执行的存储过程名或者sql语句块。如果该参数为空值,则不更新指定job的content值,否则更新指定job的content值。

    示例:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    CREATE TABLE test_table(a int);
    CREATE TABLE
    
    CREATE OR REPLACE PROCEDURE test_job(a in int) IS
    BEGIN
    INSERT INTO test_table VALUES(a);
    COMMIT;
    END;
    /
    CREATE PROCEDURE
    
    --PKG_SERVICE.JOB_SUBMIT
    SELECT PKG_SERVICE.JOB_SUBMIT(NULL, 'call test_job(1);', to_date('20180101','yyyymmdd'),'sysdate+1');
     job_submit 
    ------------
          28269
    (1 row)
    
    SELECT PKG_SERVICE.JOB_SUBMIT(NULL, 'call test_job(1);', to_date('20180101','yyyymmdd'),'sysdate+1.0/24');
     job_submit 
    ------------
           1506
    (1 row)
    
    CALL PKG_SERVICE.JOB_SUBMIT(NULL, 'INSERT INTO test_table VALUES(1);  call test_job(1); call test_job(1);', add_months(to_date('201701','yyyymm'),1), 'date_trunc(''day'',SYSDATE) + 1 +(8*60+30.0)/(24*60)' ,:jobid);
      job  
    -------
     14131
    (1 row)
    
    SELECT PKG_SERVICE.JOB_SUBMIT (101, 'insert_msg_statistic1;', sysdate, 'sysdate+3.0/24');
     job_submit 
    ------------
            101
    (1 row)
    
    --PKG_SERVICE.JOB_UPDATE
    CALL PKG_SERVICE.JOB_UPDATE(101, sysdate, 'sysdate + 1.0/1440', 'call test_job(1);');
     job_update 
    ------------
    
    (1 row)
    
    CALL PKG_SERVICE.JOB_UPDATE(101, sysdate, 'sysdate + 1.0/1440', 'insert into test_table values(1);');
     job_update 
    ------------
    
    (1 row)
    
    --PKG_SERVICE.JOB_FINISH
    CALL PKG_SERVICE.JOB_FINISH(101,true);
     job_finish 
    ------------
    
    (1 row)
    
    --PKG_SERVICE.JOB_CANCEL
    CALL PKG_SERVICE.JOB_CANCEL(101);
     job_cancel 
    ------------
    
    (1 row)
    
    DROP TABLE test_table;
    DROP TABLE
    
  • PKG_SERVICE.SUBMIT_ON_NODES

    存储过程SUBMIT_ON_NODES创建一个所有CN/DN上的定时任务,仅sysadmin/monitor admin有此权限。

    PKG_SERVICE.SUBMIT_ON_NODES函数原型为:

    1
    2
    3
    4
    5
    6
    7
    PKG_SERVICE.SUBMIT_ON_NODES(
    node_name    IN   NAME,
    database     IN   NAME,
    what         IN   TEXT,
    next_date    IN   TIMESTAMP WITHOUT TIME ZONE,
    job_interval IN   TEXT,
    job          OUT  INTEGER);
    
    表13 PKG_SERVICE.SUBMIT_ON_NODES接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    node_name

    TEXT

    IN

    指定作业的执行节点,当前仅支持值为'ALL_NODE'(在所有节点执行)与'CCN'(在central coordinator执行)。

    database

    TEXT

    IN

    集群作业所使用的database,节点类型为'ALL_NODE'时仅支持值为'postgres'。

    what

    TEXT

    IN

    要执行的SQL语句。支持一个或多个‘DML’,‘匿名块’,‘调用存储过程的语句’或3种混合的场景。

    nextdate

    TIMESTAMP

    IN

    下次作业运行时间。默认值为当前系统时间(sysdate)。如果是过去时间,在提交作业时表示立即执行。

    job_interval

    TEXT

    IN

    用来计算下次作业运行时间的时间表达式,可以是interval表达式,也可以是sysdate加上一个NUMERIC值(例如:sysdate+1.0/24)。如果为空值或字符串"null"表示只执行一次,执行后JOB状态STATUS变成'd'不再执行。

    job

    INTEGER

    OUT

    作业号。范围为1~32767。当使用select调用dbms.submit_on_nodes时,该参数可以省略。

    示例:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    SELECT pkg_service.submit_on_nodes('ALL_NODE', 'postgres', 'select capture_view_to_json(''dbe_perf.statement'', 0);', sysdate, 'interval ''60 second''');
     submit_on_nodes 
    -----------------
               12068
    (1 row)
    
    SELECT pkg_service.submit_on_nodes('CCN', 'postgres', 'select capture_view_to_json(''dbe_perf.statement'', 0);', sysdate, 'interval ''60 second''');
     submit_on_nodes 
    -----------------
                9027
    (1 row)
    
  • PKG_SERVICE.ISUBMIT_ON_NODES

    ISUBMIT_ON_NODES与SUBMIT_ON_NODES语法功能相同,但其第一个参数是入参,即指定的作业号,SUBMIT最后一个参数是出参,表示系统自动生成的作业号。仅sysadmin/monitor admin有此权限。

  • PKG_SERVICE.SQL_GET_ARRAY_RESULT

    该函数用来返回绑定的数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。

    PKG_SERVICE.SQL_GET_ARRAY_RESULT函数原型为:
    1
    2
    3
    4
    5
    6
    PKG_SERVICE.SQL_GET_ARRAY_RESULT(
        context_id in int,
        pos in VARCHAR2,
        column_value inout anyarray,
        result_type in anyelement
    );
    
    表14 PKG_SERVICE.SQL_GET_ARRAY_RESULT接口说明

    参数名称

    描述

    context_id

    想查找的CONTEXT ID号。

    pos

    绑定的参数名。

    column_value

    返回值。

    result_type

    返回值类型。

  • PKG_SERVICE.SQL_GET_VARIABLE_RESULT

    该函数用来返回绑定的非数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。

    PKG_SERVICE.SQL_GET_VARIABLE_RESULT函数原型为:
    1
    2
    3
    4
    5
    6
    PKG_SERVICE.SQL_GET_VARIABLE_RESULT(
        context_id in int,
        pos in VARCHAR2,
        result_type in anyelement
    )
    RETURNS anyelement;
    
    表15 PKG_SERVICE.SQL_GET_VARIABLE_RESULT接口说明

    参数名称

    描述

    context_id

    想查找的CONTEXT ID号。

    pos

    绑定的参数名。

    result_type

    返回值类型。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容