惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Last Watchdog
The Last Watchdog
S
Securelist
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
AI
AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
W
WeLiveSecurity
P
Palo Alto Networks Blog
O
OpenAI News
V2EX - 技术
V2EX - 技术
H
Heimdal Security Blog
L
Lohrmann on Cybersecurity
NISL@THU
NISL@THU
T
Tor Project blog
T
Threatpost
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
A
Arctic Wolf
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Latest news
Latest news
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tenable Blog
量子位
L
LINUX DO - 最新话题
Webroot Blog
Webroot Blog
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
Hacker News: Ask HN
Hacker News: Ask HN
U
Unit 42
T
Tailwind CSS Blog
WordPress大学
WordPress大学
N
News | PayPal Newsroom
C
CXSECURITY Database RSS Feed - CXSecurity.com
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Stack Overflow Blog
Stack Overflow Blog
Cloudbric
Cloudbric
C
Check Point Blog
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Hacker News
The Hacker News
B
Blog

良的世界

达梦数据库主备集群动态增加实时备库 – 良的世界 达梦数据库SQL报错之远程操作符执行失败 – 良的世界 达梦数据库的审计功能 – 良的世界 达梦数据库在同一服务器上配置多个 AP 服务 – 良的世界 达梦数据库中常用的系统视图 – 良的世界 达梦数据库服务器的磁盘I/O监控指南 – 良的世界 达梦数据库的重做日志 – 良的世界 达梦数据库授予其他用户下创建表的权限 – 良的世界 达梦的回滚表空间ROLL – 良的世界 达梦数据库的作业系统 – 良的世界 Windows环境安装dmPython时报错:error: Microsoft Visual C++ 14.0 or greater is required. – 良的世界
SQL优化之注入HINT – 良的世界
shine · 2026-03-19 · via 良的世界

本文于 86 天前发布,最后更新于 86 天前

一、说明

功能说明:为 SQL 注入 HINT 规则。SF_INJECT_HINT 方法创建的 HINT 规则无生效类别限制,如果需要为该 HINT 规则设置生效类别,可通过 SF_ALTER_HINT 过程修改实现。

参数说明:
sql_text:待注入 HINT 规则的 SQL 语句。SQL 语句必须是语法正确的增删改查语句。
hint_text:待注入的 HINT 规则,必须指定为非 NULL 值。
name:HINT 规则的名称,指定为 NULL 值时系统为其命名。
description:对 HINT 规则的详细描述。
validate:HINT 规则是否生效。TRUE 是;FALSE 否。
fuzzy:指定 SQL 的匹配规则为精准匹配或模糊匹配,该参数值不能为 NULL。
当该参数缺省时,表示使用定义 1 的语法,仅支持精准匹配。
该参数类型为 BOOLEAN 时,使用定义 2 或定义 3 的语法,值为 TRUE 时,为模糊匹配;
值为 FALSE 时,为精准匹配。
精准匹配时,待注入 HINT 规则的 SQL 语句必须为语法正确的 INSERT/DELETE/UPDATE/SELECT/MERGE INTO 语句(语句以 EXPLAIN/EXPLAIN FOR 开头时,去掉 EXPLAIN/EXPLAIN FOR 后的语句必须完全正确),精准匹配要求 SQL 语句完全匹配,不支持 SQL 语句中的子查询匹配;
模糊匹配时,待注入 HINT 规则的 SQL 语句应为非 NULL 值。
该参数类型为 INT 时,使用定义 4 或定义 5 的语法,值为 0 表示精确匹配,值为 1 表示模糊匹配,值为 2 表示通过 sql_text_id精确匹配。
fuzzy 取值为 2 时,参数 sql_text 应该输入长度为 13 的 sql_text_id 字段,如果 fuzzy 取值为 2 但参数 sql_text 依旧输入 SQL 语句,预期会报错。
need_clear:是否同步清空所有缓存的计划,该参数值不能为 NULL。
当该参数缺省时,表示使用定义 1、定义 2 或定义 4 的语法,此时默认不清空缓存计划。
指定该参数时,使用定义 3 和定义 5 的语法,值为 TRUE 时,清空缓存的计划;值为 FALSE 时,模糊匹配和通过 sql_text_id 匹配时,不清空缓存的计划,需要手动清除对应 SQL 的计划后,指定的 HINT 才能生效,精确匹配时,默认会删除受影响 SQL 的计划缓存。

返回值:执行成功返回名称,执行失败报错误信息。

二、使用

--模糊匹配
SF_INJECT_HINT('SQL语句', 'HINT', 'INJECT名称', '注释', TRUE, TRUE);

注入HINT后需要清空对应SQL的计划缓存

BEGIN
    FOR RS IN (SELECT * FROM V$CACHEPLN WHERE SQLSTR LIKE '%SQL语句%') LOOP
        EXECUTE IMMEDIATE 'SP_CLEAR_PLAN_CACHE(' || RS.CACHE_ITEM || ');';
    END LOOP;
END;

查询已经注入的HINT-系统视图

SELECT * FROM SYSINJECTHINT ORDER BY CRTDATE DESC;

删除注入的HINT

SF_DEINJECT_HINT('INJECT名称');