使用调试信息编译Oracle模式
我们有一个剧本,可以在Oracle 12.1.0.2.0数据库上建设很多新的Oracle包,触发器,视图和函数. 之后,编译全部这些工具.我们起首行使DBMS_UTILITY.COMPILE_SCHEMA来编译全部这些工具.可是,COMPILE_SCHEMA不会添加调试信息.我们还想添加调试信息. 最好的要领是什么?这是我们当前的算法: >建设全部工具 在这种环境下,全部工具都被编译两次,这显然不是最佳的.有许多工具以是必要很长时刻.我们但愿加速速率. 是否有任何可用的成果与DBMS_UTILITY.COMPILE_SCHEMA沟通,但包括调试信息? 办理要领如 the documentation中所述:
因此,您可以在建设工具之前或从头编译模式之前配置它.为了匹配SQL Developer在“编译调试”时所做的工作,您还必要将PLSQL_DEBUG配置为true.这是一个快速演示: create or replace package p42 as function f return number; end p42; / create or replace package body p42 as function f return number is begin return 42; end f; end p42; / select name,type,plsql_optimize_level,plsql_debug from user_plsql_object_settings where name = 'P42'; NAME TYPE PLSQL_OPTIMIZE_LEVEL PLSQL_DEBUG ------------------------------ ------------ -------------------- ----------- P42 PACKAGE 2 FALSE P42 PACKAGE BODY 2 FALSE alter session set plsql_optimize_level = 1; alter session set plsql_debug = true; exec dbms_utility.compile_schema(user); select name,plsql_debug from user_plsql_object_settings where name = 'P42'; NAME TYPE PLSQL_OPTIMIZE_LEVEL PLSQL_DEBUG ------------------------------ ------------ -------------------- ----------- P42 PACKAGE 1 TRUE P42 PACKAGE BODY 1 TRUE 虽然,你可以在建设工具之前改变你的会话,可是假如你知道你老是要老是从头编译模式 – 假如你必需从头编译全部对象,而不只仅是无效的工具 – 那么比及当时也许是好.可是假如您确其实启用调试的环境下建设工具,您如故可以行使以下呼吁从头编译并保存它: DBMS_UTILITY.COMPILE_SCHEMA(schema => user,reuse_settings => true); …假如要从头编译全部内容,可能只想从头编译无效工具: DBMS_UTILITY.COMPILE_SCHEMA(schema => user,compile_all => false,reuse_settings => true); (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |