当前位置: 首页 > news >正文

lightdb23.3 表名与包名不能重复

LightDB 表名与包名不能重复

从 LightDB 23.3 版本开始表名和包名不能重复,与 oracle 一致。原先已已支持包名和schema名不能重复。

背景

在之前版本在同一schema 下可以创建相同名字的表和包。这会导致在存储过程中使用%type指定变量类型时,如果存在相同的表名和包名,会使用表的,可能会导致结果不符合预期;在表不存在的情况下才会引用包的。如下所示:

chuhx@test_o=# create table t1(key1 date);
CREATE TABLE
chuhx@test_o=# create package t1 ISkey1 real;end;
/
CREATE PACKAGE
chuhx@test_o=#  declareval t1.key1%type = '20221212';begindbms_output.serveroutput(true);dbms_output.put_line(cast(val as varchar2(100)));
end;
/
2022-12-12
DO
chuhx@test_o=# drop table t1;
DROP TABLE
chuhx@test_o=#  declareval t1.key1%type = '20221212';begindbms_output.serveroutput(true);dbms_output.put_line(cast(val as varchar2(100)));
end;
/
2.0221212e+07
DO

在 oracle 下包名与表名不能相同,故需要支持此特性。

案例

lightdb@postgres=# create table t1(key1 int);
CREATE TABLE
lightdb@postgres=# create package t1 ISkey1 real;end;
/
ERROR:  relation "t1" already exists
HINT:  A relation has the same name, so you must use a name that doesn't conflict with any existing relation.
lightdb@postgres=# drop table t1;
DROP TABLE
lightdb@postgres=# create package t1 ISkey1 real;end;
/
CREATE PACKAGE
lightdb@postgres=# create table t1(key1 int);
ERROR:  package "t1" already exists
HINT:  A package has the same name, so you must use a name that doesn't conflict with any existing package.
lightdb@postgres=# 
http://www.lryc.cn/news/119622.html

相关文章:

  • Oracle 开发篇+Java通过HiKariCP访问Oracle数据库
  • 进销存管理系统(小杨国贸)springboot采购仓库财务java jsp源代码mysql
  • 指针初阶(2)
  • 基于Gradio的GPT聊天程序
  • 包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)
  • Terraform 系列-批量创建资源时如何根据某个字段判断是否创建
  • Android侧滑栏(一)可缩放可一起移动的侧滑栏
  • 简单程度与自负是否相关?探索STM32的学习价值
  • 第二章:CSS基础进阶-part3:弹性例子布局
  • 函数与方法有区别?
  • VMware vCenter忘记密码操作,和Linus原理一致
  • Bert详细学习及代码实现详解
  • Vue [Day7] 综合案例
  • 基于R做宏基因组的进化树ClusterTree分析
  • 栈和队列修炼指南(基本操作+OJ练习)
  • 伪类和伪元素有何区别?
  • 自动测试框架airtest应用一:将XX读书书籍保存为PDF
  • ValueError:The following settings are not supported :{‘username‘: ‘neo4j“}
  • 360安全卫士右下角广告弹窗太多怎么彻底关闭?
  • 链表有无环以及确定入环口详解
  • chrome插件开发实例08- 使用Vue.js开发chrome插件
  • PCL 计算外接圆的半径
  • Matlab实现神经网络SOM算法(附上完整仿真源码)
  • 【遍历】非递归法 二叉树的前中后序遍历
  • Python将tiff转换成png
  • 【大数据】-- 部署 Flink kubernetes operator
  • 能够完成两个数的算术运算的单地址指令,地址码指明一个操作数,另一个操作数来自( )方式
  • 数据库数据恢复-Oracle数据库数据恢复案例
  • 对于msvcr120.dll丢失的问题,分享几种解决方法
  • 网络安全进阶学习第十三课——SQL注入Bypass姿势