首页 > 其他分享 >【YashanDB知识库】列与存储过程中重名变量/别名问题

【YashanDB知识库】列与存储过程中重名变量/别名问题

时间:2024-07-26 16:31:56浏览次数:10  
标签:YashanDB 变量 重名 知识库 别名 报错 test c2 c1

问题现象

当一条查询中出现了重复别名,或者在一个存储过程中出现了变量名称与查询中别名相同,就会报错。这个问题在多个客户现场出现。

create table test_tab1 (c1 int, c2 int);
create table test_tab2 (c1 int, c2 int);
 
select * from test_tab1 t1
join test_tab2 t2 on t2.c1=t1.c1
join test_tab2 t2 on t2.c1=t1.c2;
 
drop table abcd;
create table abcd(c1 number,c2 number);
declare
  v_c number;
begin
  select sum(c2) v_c
  into v_c
  from abcd;
end;
/

问题的风险及影响

风险是会出现一个难以找到为什么的报错,比如找不到from之类的问题。

问题影响版本

截止2024年4月,最新版本依旧有该问题。

问题发生原因

在verify的时候,没有做变量分层处理,类似于编译器中变量压栈的操作。

解决方法及规避方式

通过修改变量名称可以临时规避这个问题。

问题分析和处理过程

1、发现编译报错;

2、如果是普通查询,那么寻找其中是否出现了别名相同的表;

3、如果是存储过程,那么需要寻找申请的变量与存储过程中报错语句的列别名是否相同。

经验总结

在写SQL的过程中,尽量区别各个变量的名称,防止重名后难以定位。

标签:YashanDB,变量,重名,知识库,别名,报错,test,c2,c1
From: https://www.cnblogs.com/YashanDB/p/18325639

相关文章

  • 【YashanDB知识库】服务端是GBK编码,导致从22.2.12.100升级到22.2.13.100失败问题
    问题现象问题单:22.2.12.100升级到22.2.13.100失败现象:如下图,从22.2.12.100升级到22.2.13.100失败,报错。问题风险及影响版本升级失败,影响上线问题发生版本客户版本:22.2.12.100现在版本已经修改掉这个问题,升级比较时忽略掉"----"开头的分隔符和结果前后的空格。问题发生原......
  • 【YashanDB知识库】绑定参数,同一个sql多个执行计划的问题
    问题现象同一个sql有两个执行计划,是否合理?它的EXECUTIONS,ELAPSED_TIME等统计信息怎么看,是独立分开的还是统一计算的?如下图:问题影响版本tpcc测试:23.2.1.100问题的风险及影响影响EXECUTIONS等sql统计信息的计算问题发生原因同一条sql,特别是绑定参数的sql,参数类型不同,会导......
  • 【YashanDb知识库】YashanDB的JDBC/OCI驱动如何设置字符编码
    问题现象Oracle、Mysql数据库链接串,JDBC驱动连接串可以指定客户端的编码格式:jdbc:mysql://hostname:port/database_name?useUnicode=true&characterEncoding=utf8mb4jdbc:oracle:thin:@//hostname:port/service_name?NLS_LANGUAGE=AMERICAN&NLS_TERRITORY=AMERICA&NLS_CHARACTE......
  • 【YashanDB数据库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIE
    问题现象客户的java日志中有如下异常信息:问题的风险及影响对正常的业务流程无影响,但是影响druid的mergesql功能(此功能会将sql语句中的字面量替换为绑定变量,然后将替换以后的sql视为同一个,然后用做执行性能统计)问题影响的版本与yashandb版本无关问题发生原因druid源码中在......
  • AI知识库这事儿FastGPT是专业的
    在搭建AI知识库这事儿上,有不少成熟的框架,我推荐使用FastGPT。这篇文章笔者就使用过的两款平台做个比较,FastGPT和百度千帆平台。1.为什么要搭建知识库随着企业的运营,企业的私有数据越来越多(结构化、半结构化、非结构化的数据)。这么多数据,我们不可能都记在大脑里,就算老员工能记住......
  • 【YashanDB知识库】stmt未close,导致YAS-00103 no free block in sql main pool part 0
    问题现象问题单:YAS-00103nofreeblockinsqlmainpoolpart0,YAS-00105outofmemorytoallocatehashtableofsize=256现象:业务处理sql时,报错YAS-00103nofreeblockinsqlmainpoolpart0问题风险及影响业务处理报错,影响功能使用问题影响版本客户版本:22.2.4......
  • 【YashanDB知识库】filter or改写问题
    问题现象当filter中出现or的时候,会导致filter无法走索引或者走hashjoin,就需要进行改写,例如:createtabletest_tab1(col1int,col2int,col3int);createtabletest_tab2(col4int,col5int,col6int);beginforiin1..10000loopinsertintotest_tab1values(i......
  • 【YashanDB知识库】yac修改参数后关闭数据库hang住
    【标题】yac修改参数后关闭数据库hang住【问题分类】性能优化【关键词】YashanDB,yac,shutdownhang【问题描述】修改yac参数后执行shutdownimmediate,数据库hang住。【问题原因分析】Shutdown操作时,线程在获取gInstance->trigger->sema信号量时卡住。该信号量应由mai......
  • 【YashanDB知识库】EXP导致主机卡死问题
    问题现象问题单:exp导出全库1主2备主节点执行,DMP文件30G左右系统卡死,发生主备切换现象:expsys/Cod-2022file=bim20240402.dmpfull=y服务器卡死,ssh连接不上服务器。等待一两个小时后,可以重新连接上。备用节点升主正常,查看run.log,心跳发送不到主节点。重连后,yasdb不......
  • 【机器学习】FastGPT 知识库搜索测试功能解析
    本文以FastGPT知识库的搜索测试功能为入口,分析FastGPT的知识检索流程。一、搜索功能介绍1.1整体介绍搜索测试功能包含三种类型:语义检索、全文检索、混合检索。语义检索:使用向量进行文本相关性查询,即调用向量数据库根据向量的相似性检索;全文检索:使用传统的全文检索,适......