dynamic-sql相关内容

为什么我们不能在动态 SQL 语句中使用强引用游标?

我正在尝试使用带有动态 sql 语句的强 ref cur 但它给出了一个错误,但是当我使用弱游标时它可以工作,请解释是什么原因,请向我转发 oracle 服务器架构师的任何链接,其中包含有关如何在 Oracle 服务器中完成编译和解析的问题.这是错误和代码. 错误在第 6 行:ORA-06550:第 6 行,第 7 列:PLS-00455:游标“EMP_REF_CUR"不能用于动态 SQL OP ..
发布时间:2021-12-24 16:13:59 数据库

如何使用变量在动态查询中指定 IN 子句?

在 PL/SQL 中,您可以使用连接指定 IN 运算符的值: v_sql := '选择字段1从表 1where field2 in (' || v_list || ')'; 是否可以使用变量来做同样的事情? v_sql := '选择字段1从表 1where field2 in (:v_list)'; 如果是,怎么做? 编辑:参考 Marcin 的回答,我如何从结果表中进行选择? 声 ..
发布时间:2021-12-24 15:59:20 数据库

什么是动态 SQL?

我刚刚问了一个与 SQL 相关的问题,第一个答案是:“在这种情况下,动态 SQL 是必经之路." 因为我之前从未听说过动态 SQL,所以我立即搜索了该站点和网络以了解它是什么.维基百科没有具有此标题的文章.第一个谷歌结果都指向用户论坛,人们在那里提出或多或少的相关问题. 但是,我没有找到“动态 SQL"的明确定义.它是供应商特定的吗?我使用MySQL,但在 MySQL 手册中没有找到参 ..
发布时间:2021-12-20 16:57:00 数据库

即席查询 vs 存储过程 vs 动态 SQL

即席查询与存储过程与动态 SQL.谁能说说优缺点? 解决方案 存储过程 优点:适用于简短的简单查询(又名 OLTP——即添加、更新、删除、查看记录) 优点:将数据库逻辑与业务逻辑分开 优点:易于排除故障 优点:易于维护 优点:通过网络传输的比特更少(即只有过程名称和参数) Pro:在数据库中编译 优点:更好的安全性(用户不需要直接访问表) 优点:出色的查询计划缓存(适用 ..
发布时间:2021-12-20 16:45:34 其他开发

在 PostgreSQL 中选择具有特定列名的列

我想编写一个简单的查询来选择 PostgreSQL 中的一些列.但是,我不断收到错误 - 我尝试了一些选项,但它们对我不起作用.目前我收到以下错误: org.postgresql.util.PSQLException:错误:语法错误在或附近“列" 要获取带有值的列,我尝试执行以下操作: select * from weather_data where column like '%20 ..
发布时间:2021-12-19 15:13:34 其他开发

nvarchar(max) 仍然被截断

所以我在 MS SQL Server 2008 中编写了一个存储过程.这是一个非常长的查询,我必须动态编写它,所以我创建了一个名为 @Query 的变量并将其设为类型NVARCHAR(MAX).现在,有人告诉我在现代版本的 SQL Server 中,NVARCHAR(MAX) 可以容纳大量数据,远远超过最初的 4000 个字符的最大值.但是,当我尝试打印时 @Query 仍然被截断为 4000 个 ..
发布时间:2021-12-13 08:17:28 其他开发

用于循环并从多个表中选择数据的函数

我是 Postgres 的新手,有一个包含多个相同结构表的数据库.我需要从每个表中选择符合特定条件的数据. 我可以用一堆 UNION 查询来做到这一点,但是我需要搜索的表的数量会随着时间的推移而改变,所以我不想这样硬编码.我一直在尝试开发一个函数,该函数将循环遍历特定的表(它们有一个共同的命名约定)并返回一个记录表,但是当我查询该函数时我没有得到任何结果.功能代码如下: 创建或替换函数 p ..

如何清理(防止 SQL 注入)SQL Server 中的动态 SQL?

我们有大量依赖动态 SQL 的 SQL Server 存储过程. 存储过程的参数在动态 SQL 语句中使用. 我们需要在这些存储过程中使用标准验证函数来验证这些参数并防止 SQL 注入. 假设我们有这些限制: 我们不能重写程序以不使用动态 SQL 我们不能使用 sp_OACreate 等来使用正则表达式进行验证. 在将参数传递给存储过程之前,我们无法修改调用存储 ..

T-SQL 动态 SQL 和临时表

看起来像通过 EXECUTE 字符串方法使用动态 SQL 创建的 #temptables 具有不同的范围,并且不能被同一存储过程中的“固定"SQL 引用.但是,我可以在子序列动态 SQL 中引用由动态 SQL 语句创建的临时表,但似乎除非 SQL 已修复,否则存储过程不会将查询结果返回给调用客户端. 一个简单的 2 表场景:我有2张桌子.让我们称它们为订单和项目.Order 有一个 Orde ..
发布时间:2021-12-10 12:48:17 数据库

如何将 sp_executesql 结果放入变量中?

我有一段动态 SQL 需要执行,然后我需要将结果存储到一个变量中. 我知道我可以使用 sp_executesql 但找不到关于如何执行此操作的明确示例. 解决方案 如果你有 OUTPUT 参数你可以做 DECLARE @retval int声明@sSQL nvarchar(500);声明@ParmDefinition nvarchar(500);声明@tablename nvarc ..
发布时间:2021-12-10 12:19:54 其他开发

动态 SQL (EXECUTE) 作为 IF 语句的条件

我想执行一个动态 SQL 语句,它的返回值是 IF 语句的条件: IF EXECUTE 'EXISTS (SELECT 1 FROM mytable)' THEN 这会产生错误ERROR: type "execute" does not exist. 是否可以这样做,或者是否需要将IF语句前的SQL执行到变量中,然后将该变量作为条件进行检查? 解决方案 这个结构是不可能的: ..
发布时间:2021-12-05 22:04:03 其他开发

PostgreSQL 中的用户定义变量

我想在 PostgreSQL 中实现以下 MySQL 脚本. SET @statement = search_address_query;从@statement 准备动态查询;执行动态查询;解除分配准备动态查询; 如何使用 PostgreSQL 定义用户定义的变量“@statement". 解决方案 Postgres 通常不在普通 SQL 中使用变量.但是你也可以这样做: SET ..
发布时间:2021-12-05 21:56:35 其他开发

在 PostgreSQL 中动态生成交叉表的列

我正在尝试在 PostgreSQL 中创建 crosstab 查询,以便它自动生成 crosstab 列而不是对其进行硬编码.我编写了一个函数,可以动态生成crosstab 查询所需的列列表.想法是使用动态 sql 替换 crosstab 查询中此函数的结果. 我知道如何在 SQL Server 中轻松完成此操作,但我对 PostgreSQL 的有限了解阻碍了我的进步.我正在考虑将生成列的动 ..
发布时间:2021-12-05 21:41:24 其他开发

将表名和列名定义为 plpgsql 函数中的参数?

它一定很简单,但我正在迈出 Postgres 函数的第一步,但我找不到任何有效的东西... 我想创建一个函数来修改表和/或列,但我找不到在函数中将表和列指定为参数的正确方法. 类似于: CREATE OR REPLACE FUNCTION foo(t table)返回无效作为 $$开始更改表 t 添加列 c1 varchar(20);更改表 t 添加列 c2 varchar(20); ..
发布时间:2021-12-05 21:15:46 其他开发