网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
更新时间:2024-12-10 GMT+08:00
分享

函数/过程管理

创建函数/过程

  1. 在“对象浏览器”窗格中,右键单击待创建PL/SQL过程的指定模式下的“函数/过程”,按照要求选择“创建函数”、“创建SQL函数”、“创建过程”或“创建C函数”。

    例如右键单击“函数/过程”,弹出如下菜单:

  2. Data Studio在新页签中显示所选模板。

  3. 完成添加函数/过程后,可选择“编译”按钮或在页签空白处右键单击选在“编辑”选项编译该函数/过程。

  4. 编译运行成功后会在“对象浏览器”中显示新函数/过程。

    • 过程名称旁的星号(*),表示该过程不被编译或添加到“对象浏览器”。
    • 刷新(按下“F5”)后,“对象浏览器”中会显示新添加的调试对象。
    • C函数不支持调试操作。
    • 弹出消息显示已完成操作的状态。状态栏将不显示此操作的状态。

编辑函数/过程

  1. 在“对象浏览器”中双击所需过程/函数或SQL函数,或右键单击函数/过程或SQL函数并选择“查看源”。

    “PL/SQL Viewer”页签显示所选函数/过程或SQL函数。

    • 用户必须刷新“对象浏览器”才能查看最新DDL。
    • 拥有相同模式、名称和输入参数的函数/过程或SQL函数一次只能打开一个。

  2. 编辑或更新后,可以编译并执行该PL/SQL程序或SQL函数。

    在编译前若执行函数/过程或SQL函数,会显示一条“改变源代码”的提示。

  3. 单击“”,编译并执行PL/SQL函数/过程。“消息”对话框显示已完成操作的状态。
  4. 编译函数/过程或SQL函数后,刷新“对象浏览器”(按下“F5”)查看更新后信息。

授权/撤销权限

  1. 右键单击函数/过程组并选择“授权/撤销权限”。弹出“授权/撤销权限”对话框。
  2. 打开“选择对象”页签,选择待授权/撤销权限的对象,并单击“下一步”。
  3. 打开“选择权限”页签,从“角色”中选择对应角色,并勾选需要“授予”或“撤销”的权限。
  4. 在“SQL预览”页签,可以查看根据以上输入自动生成的SQL查询。如发现有不符合预期,可返回上一步修改,直至符合预期。
  5. 单击“完成”。

调试函数/过程

断点用于暂停其所在行中的PL/SQL程序的执行,可用断点控制执行并调试过程。设置并启用断点后,PL/SQL程序会在该断点所在的行停止执行,此时用户可以进行其他调试操作。

  • 设置或添加断点

    Data Studio支持为某行设置或创建断点。

    打开需要添加断点的函数/过程,双击行号字段左侧的断点标尺,设置断点,断点标志启用表示操作成功。如果函数在调试过程中不会间断或停止执行,则为其设置的断点未生效。

  • 使用“断点”窗格

    在“断点”窗格中可查看和管理已有断点。可从最小化窗口窗格中单击断点按钮打开“断点”窗格。

    在“断点”窗格中,勾选断点复选框,单击“启用”、“禁用”或“移除”按钮,进行断点启用、禁用或者删除操作。也可双击行号字段左侧的断点标尺设置断点;双击断点图标,将断点删除。

    在“PL/SQL Viewer”窗格,双击所需断点信息行,定位该断点。

    • “断点”窗格会列出每一个断点所在行的行号以及调试对象的名称。
    • 禁用断点后,程序不会在该断点处暂停执行,但该断点仍会保留(以备将来启用)。
    • 删除的断点无法恢复。
    • 按下“Alt+Y”可复制“断点”窗格内容。
  • 修改源代码

    调试过程中,如果用户修改了从服务器获取的源代码,并继续进行调试,Data Studio会提示错误:建议刷新该对象,再次执行调试操作。

    如果用户修改了从服务器获取的源代码,且在未设置断点的情况下执行或调试了该代码,Data Studio会显示服务器中源代码的执行结果。建议在进行调试或者执行前,进行刷新操作。

  • 使用断点调试函数/过程

    在要调试的行创建断点后,单击“调试”按钮或在“对象浏览器”中右键单击函数,选择“调试”。在弹出的“调试函数/过程”对话框中,输入参数信息。

    • 如果没有输入参数,则“调试函数/过程”对话框不会弹出。
    • 对于varchar和date数据类型,参数值需加半角单引号(');对于numeric数据类型,参数值可以不加半角单引号。要将参数值设为NULL,需输入NULL或null。
    • 调试或执行函数或过程期间,相同参数的值会在下次操作中被直接使用。首次执行时,参数值为空,可根据需要输入参数值。单击“确定”,参数值将被缓存。下次查询时,执行/调试期间会显示上次缓存的相同参数的值。某一连接被删除后,缓存的所有参数值都会被清除。
    • 调试过程中“调用堆栈”窗格会填充信息。

    • “变量”窗格显示当前的变量值。将鼠标悬停在函数/过程中的变量上,也会显示当前的变量值。“变量”窗格默认显示系统变量。必要时,用户可以屏蔽系统变量。按钮默认开启,即默认启用系统变量。

      设置/展示变量

      说明

      设置NULL值

      1. 在“变量”窗格中双击一个变量值。

        弹出对话框。

      2. 设置值为空。

      设置字符串值

      设置字符串值如下:

      • 要设置为abc,则输入abc。
      • 要设置为Master's Degree,则输入Master''s Degree。
      • 要将变量设置为文本(NULL),在“变量”窗格中设置NULL。

      设置Boolean值

      Boolean值t或f上加单引号。将t设成一个boolean变量,则在Variable窗格中输入't'

      显示变量值

      如果变量值是NULL文本,则显示为NULL。

      如果变量值是NULL,则显示为空。

      如果变量值为字符串,比如abc,则显示为abc。

    • 调试函数/过程期间,在编辑器中右键单击变量,可将变量添加至“监视器”窗格。如果变量处于被监控状态,“监视器”窗格中的值会随“变量”窗格中值的变化而变。
    • 在Data Studio中调试PL/SQl函数期间,将光标放在变量上方,则会显示该变量的信息。
  • 终止调试

    在工具栏中单击“终止调试”按钮或在“调试”菜单中选择“终端调试”。调试完成后,函数会继续正常执行,不会在任何断点暂停。

    调试完成后,“结果”页签中显示函数执行结果,“调用堆栈”和“变量”窗格将被清除。

  • Data Studio支持在调试完成后,提交/回滚查询结果。右键单击执行函数的终端窗格,勾选“使用回滚进行调试”启用回滚功能。
    • 如果启用了“使用回滚进行调试”选项,则调试后获取的函数执行结果不会保存在数据库中。
    • 如果禁用了“使用回滚进行调试”选项,则调试后获取的函数执行结果被提交到数据库中。

控制执行

  • 单步调试PL/SQL函数

    调试执行函数时,可使用工具栏中的单步调试命令。通过进行单步控制,可逐行调试程序。如果进行单步操作时遇到断点,则该单步操作会停止,程序也会暂停执行。

    “单步”是指一次执行一条语句。单步执行一条语句后,可以在其他调试窗口中查看执行结果。

    一次最多可以弹出100个“PL/SQL Viewer”页签。如果打开的页签超过100个,则调用函数页签关闭。例如,如果已打开100个页签,且调试对象调用了新调试对象,则Data Studio会关闭调用函数并打开新的调试对象。

  • 单步进入

    在“调试”菜单中选择单步进入,可以逐条语句执行代码。

    当单步跳入一个函数,Data Studio执行当前语句,然后进入调试模式,调试位置由左侧标尺区域中的箭头表示。如果执行语句调用另一个函数,Data Studio将单步跳入该函数。一旦函数中的所有语句执行完成,Data Studio将跳回其调用函数的下一语句。

    单步进入(F7),进入下一语句如果按“继续”,PL/SQL代码执行将继续。

  • 单步跳过

    单步跳过与单步进入相同,除非调用了另一个函数,否则不会跳入该函数。该函数将运行,进入当前函数中的下一个语句。F8是单步跳过的快捷键。如果该调用函数内设置了断点,单步跳过将进入该函数,并命中该断点。

  • 单步退出

    子程序单步退出,继续该函数的执行,在该过程返回其调用函数后,暂停执行,确定该函数的剩余部分无需调试后,可单步退出该段函数。然而,如果该函数其余部分设置了断点,在返回调用函数前,该断点将被命中。

    单步跳过和单步退出过程都会执行函数。单步退出操作的快捷键是“Shift+F7”。

  • 继续执行

    调试进程在某一位置停止时,可在“调试”菜单中选择“继续”(F9)继续PL/SQL函数执行。

  • 查看调用堆栈

    调用堆栈”窗格展示调用过程时的过程链。可从最小化窗口窗格中打开“调用堆栈”窗格。最近的过程在顶部,最早的在底部,每个程序名的末尾是该过程的当前行号。

    双击“调用堆栈”窗格中的函数名,通过“调用堆栈”窗格在多个函数中导航。

导出函数/过程DDL

可通过右键单击“导出DDL”导出该函数/过程定义。

  1. 在“对象浏览器”窗格中,右键单击所选函数/过程,选择“导出DDL”。

    用户需自定义导出路径。如果需要将数据压缩,勾选“.zip”选项。

    Data Studio安全免责声明”必须勾选“我同意”才可以单击“确定”。用户可关闭安全免责声明,关闭后导出DDL时将不会再出现,详情请参见表1

  2. 单击“确定”,右下角的状态栏会显示操作进度。

    • 如果文件名包含Windows中文件名不支持的字符,则文件名的名称会与模式名称不同。
    • 要执行该操作,需要MS Visual C Runtime文件(msvcrt100.dll)。详情请参阅故障处理

    导出完成”对话框和状态栏显示已完成操作的状态。

    表1 支持导出DDL的编码格式

    数据库编码

    文件编码

    支持导出DDL

    UTF-8

    UTF-8

    GBK

    LATIN1

    GBK

    GBK

    UTF-8

    LATIN1

    LATIN1

    LATIN1

    GBK

    UTF-8

删除函数/过程

可单独或批量删除函数/程序。

  1. 在“对象浏览器”窗格中右键单击函数/过程对象,选择“删除函数/过程”。
  2. 选中一个或多个函数/过程对象,选择“删除对象”。
  3. Data Studio提示确认该操作窗口中,单击“”完成该操作。

    状态栏显示已完成操作的状态。

相关文档