GO_BLOCK in WHEN_VALIDATE Trigger

本文探讨了在Oracle Forms中如何在when_validate_item触发器中使用含有GO_BLOCK指令的过程。通过巧妙利用WHEN-TIMER-EXPIRED触发器,可以在字段修改前执行带有GO_BLOCK指令的过程,同时确保验证流程正常进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




I'm working with oracle forms. I've a procedure I have to run whenever a specific field's value is modified. The procedure I have to execute contains a go_block instruction, which can't be used in the when_validate_item trigger. Is there anyway to bypass this?

EDIT

I have to use the when_validate_item, because the procedure I have to run has to be run when the field is modified, BUT BEFORE the validation is executed.

share | improve this question
 
 

3 Answers 3

up vote 6 down vote accepted

Usually there is a restriction on using GO_BLOCK or GO_ITEM on a WHEN-VALIDATE-ITEM. However there are a couple of ways to overcome this. One way is to use a WHEN-TIMER-EXPIRED trigger. Here is how-

WHEN-TIMER-EXPIRED

Begin    
if GET_APPLICATION_PROPERTY(TIMER_NAME) = 'NEW_TIMER' then    
   CALL_PROG_UNIT(); --This is your Procedure that calls the GO_BLOCK   
   /*Do rest of validation here*/
end if;
END;

WHEN-VALIDATE-ITEM

DECLARE    
  timer_id TIMER;    
Begin        
  timer_id := CREATE_TIMER('NEW_TIMER',1,NO_REPEAT);    --set a short timer so that the WHEN-TIMER-EXPIRED trigger is fired immediately
End;

What happens is - This will create & expire the timer as soon as the CREATE_TIMER function is called and then the form level trigger WHEN-TIMER-EXPIRED will check the expired timer name and call your program unit that has the GO_BLOCK. Hope this helps.


http://stackoverflow.com/questions/12608330/go-block-in-when-validate-trigger

<think>嗯,用户想了解MySQL的validate_password插件的参数配置及其含义。首先,我需要回忆一下这个插件的相关参数,比如validate_password_policy、validate_password_length等等。记得这些参数主要控制密码的复杂度要求,比如密码长度、是否需要数字、大小写字母和特殊字符等。 用户提到的是参数配置和含义的翻译,可能他们需要每个参数的作用以及对应的策略级别。比如,validate_password_policy有三个级别,0低,1中,2高,不同级别对应的复杂度要求不同。然后每个参数的具体含义,比如validate_password_length决定密码的最小长度,但实际还受其他参数影响,比如数字、大小写等的要求可能会增加最小长度。 还要注意,用户可能在实际配置中遇到问题,比如设置参数后不生效,可能需要检查插件是否正确安装,或者是否需要重启服务。引用中提到的两种安装方式,配置文件加载和命令行安装,可能需要根据情况选择合适的方法。 另外,用户之前的问题可能涉及密码策略的审计,所以需要确保提供的参数解释清晰,并且给出示例配置,方便用户直接使用。比如,给出一个配置片段,说明各个参数的作用,这样用户可以直接复制到自己的配置文件中。 同时,要考虑到用户可能对某些术语不太熟悉,需要用简单的中文解释清楚,比如“策略级别”、“特殊字符”等。可能需要举例说明不同策略下的密码要求,比如低策略只需要长度,中策略需要数字和大小写,高策略还需要特殊字符。 最后,生成的相关问题需要围绕这个主题,比如如何安装插件、不同策略的区别、常见错误处理等,这样用户如果有进一步的问题,可以继续参考这些内容。</think>### MySQL validate_password 参数配置及含义翻译 以下是MySQL密码验证插件`validate_password`的核心参数及其功能说明,基于策略级别分类整理: --- #### **一、策略级别控制** 1. **`validate_password_policy`** - 作用:定义密码强度策略等级 - 取值范围: - `0` 或 `LOW`:仅检查密码长度 - `1` 或 `MEDIUM`:增加数字、大小写字母检查(默认值) - `2` 或 `STRONG`:额外要求特殊字符和字典文件匹配检查[^1][^2] --- #### **二、密码复杂度规则** 2. **`validate_password_length`** - 作用:密码最小长度(实际生效长度受其他参数影响) - 默认值:`8` 3. **`validate_password_number_count`** - 作用:密码中至少包含的数字字符数量 - 默认值:`1` 4. **`validate_password_mixed_case_count`** - 作用:密码中至少包含的大写和小写字母数量(各至少1个) - 默认值:`1` 5. **`validate_password_special_char_count`** - 作用:密码中至少包含的特殊字符数量(如`!@#$%`等) - 默认值:`1` --- #### **三、高级控制** 6. **`validate_password_dictionary_file`** - 作用:指定字典文件路径,禁止密码包含字典中的单词(仅`STRONG`策略生效) 7. **`validate_password_check_user_name`** - 作用:是否禁止密码与用户名相同 - 取值范围:`ON`/`OFF`(默认`OFF`) --- #### **四、配置示例** ```ini [mysqld] plugin-load-add=validate_password.so validate_password_policy=2 validate_password_length=10 validate_password_special_char_count=2 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值