orecal数据库给TEST用户下的以lll开头的表添加一个触发器,规则为state=3不允许增删改
时间: 2024-02-19 19:02:40 浏览: 35
可以使用以下代码来实现给TEST用户下以lll开头的表添加一个触发器,规则为state=3不允许增删改:
```sql
CREATE OR REPLACE TRIGGER TRG_TEST_LLL
BEFORE INSERT OR UPDATE OR DELETE ON TEST.LLL%
FOR EACH ROW
DECLARE
state NUMBER;
BEGIN
SELECT COUNT(*) INTO state FROM TEST.LLL_TABLE WHERE id = :NEW.id AND state = 3;
IF state > 0 THEN
RAISE_APPLICATION_ERROR(-20001, 'State is 3, not allowed to insert, update or delete');
END IF;
END;
/
```
这个代码会创建一个名为 TRG_TEST_LLL 的触发器,针对 TEST 用户下以lll开头的表。在每次插入、更新或删除数据记录的时候,触发器会检查 state 的值是否为3,如果是,则抛出一个异常,不允许进行任何增删改操作。注意,这个代码需要在 TEST 用户下运行,而且需要有创建触发器的权限。
相关问题
orecal给TEST下所有的表添加触发器,需要模糊匹配以lll开头的表
可以使用以下代码来实现给以lll开头的表添加触发器:
```sql
BEGIN
-- 选择所有以lll开头的表
FOR t IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'LLL%') LOOP
-- 构建触发器名称
DECLARE
trigger_name VARCHAR2(100);
BEGIN
trigger_name := 'TRG_' || t.table_name;
-- 创建触发器
EXECUTE IMMEDIATE '
CREATE OR REPLACE TRIGGER ' || trigger_name || '
AFTER INSERT ON ' || t.table_name || '
FOR EACH ROW
BEGIN
-- 在这里编写触发器的代码
END;
';
END;
END LOOP;
END;
/
```
这个代码会选择所有以lll开头的表,然后为每个表创建一个名称以 TRG_ 开头的触发器。在触发器的代码块中,可以编写触发器的逻辑。注意,这个代码需要在数据库用户下运行,而且需要有创建触发器的权限。
orecal数据库中VARCHAR2类型长度为8的字段为什么插入不了"2023-03-20"
可能是因为您尝试将一个长度为10的字符串插入到长度为8的VARCHAR2字段中,超出了字段的最大长度限制。您可以尝试将日期格式转换为适合该字段长度的格式,例如使用"23-03-20"或"20230320"。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)