stored-functions相关内容
在 SQL SELECT 语句中,我想执行一个对该 SELECT 语句的范围具有确定性的函数(或者事务也可以): 从 t 中选择 t.x, t.y, my_function(t.x) t.x 的许多值是相同的,因此 Oracle 可以省略一次又一次地调用相同的函数,以加快速度.但是,如果我将该函数标记为 DETERMINISTIC,则结果可能会在多次执行此查询之间缓存.之所以不能使用DETER
..
今天早上我正在学习 MySQL 中的存储过程/函数/触发器,但我在尝试在查询中使用变量表和列名时遇到了一些问题. DELIMITER |使用 R2R |如果存在则删除函数 getCategoryName |创建函数 getCategoryName(LMID INT, levelNum INT)返回 VARCHAR(255)开始DECLARE levelName VARCHAR(255) DEFA
..
查看存储过程或函数定义的MySQL命令是什么,类似于Microsoft SQL Server中的sp_helptext? 我知道 SHOW PROCEDURE STATUS 将显示可用程序的列表.我需要查看单个过程的定义. 解决方案 SHOW CREATE PROCEDURE 返回使用CREATE PROCEDURE 语句创建的先前定义的存储过程的文本.将 PROCEDURE 替
..
我一直在寻找最后一个小时左右,但没有找到这个看似简单的问题的最终答案: 如何调用存储的 MYSQL 函数/过程并在进一步的 SELECT 查询中使用其输出? 虽然这显然行不通,但这正是我想要的: SELECT P.`id` FROM (CALL test_proc()) AS P 其中 test_proc() 定义为: DROP PROCEDURE IF EXISTS test_
..
我正在尝试创建一个为特定类别递归构建路径的函数 CREATE FUNCTION getPath(inId INT)返回文本确定性开始声明 return_path 文本;声明 return_parent_id INT;SELECT CONCAT('/', name) INTO return_path FROM article_categories WHERE id = inId;SELECT pa
..
谁能解释一下 Oracle 中函数和过程之间的主要区别是什么?如果我可以用函数做任何事情,为什么我必须使用过程? 如果我不能在 sql 语句中调用过程,好吧,我会写一个函数来做同样的工作. 过程不返回值,好吧,我将在任何 dml 操作后仅返回 sql%rowcount 或 1(success), 0(exception) 过程和函数都可以通过 OUT/IN OUT 参数将变量传递给调用环
..
请帮我解决这个错误 在 MySQL 的 PHPMyAdmin 中创建存储函数时 MySQL 说:#1415 - 不允许从函数返回结果集 BEGIN设置@pAvg = 0;设置@p1 = 0;设置@p2 = 0;设置@p3 = 0;设置@p4 = 0;如果河 >1 那么SELECT @P1 := 降水来自 abd_2013 其中 id = 1;SELECT @P2 := 降水来自 ab
..
我正在从 2 个表中选择记录,其中名为 DESC 的第一个表列(前 3 个字符)应与第二个表的项目列匹配. 我想将表 1 列 DESC 中的最后 2 个字符添加到我的输出中,但最后 2 个字符不存在于表 2 列项目中. select SUBSTRING(a.[DESC], 1, 3)从表1a在 SUBSTRING(a.[DESC], 1, 3) = b.project 上加入 Table2
..
我正在尝试从 2 个表中选择记录,其中名为 DESC 的第一个表列(前 3 个字符)应与第二个表的项目列匹配. select SUBSTRING(a.[DESC],1,3) from Table1 a左外连接表2 b在 a.[DESC] = b.project其中 SUBSTRING(a.[DESC],1,3) 像 b.project 输入:第一个表 DESC 列:值:'2AB F YY'
..
我的数据库中有几个日期时间函数,但我需要添加一个获取日期时间字段的时间部分然后将时间转换为分钟的函数 我有一个函数可以获取两次之间的分钟数,但不仅仅是一次的分钟数. ALTER FUNCTION [dbo].[fn_MinutesBetween](@fStart 日期时间,@fEnd 日期时间)返回整数作为开始返回日期差异(分钟,@fStart,@fEnd) 另一个只得到时间部分
..
我正在寻找一个存储过程代码,它可以打开一个文本文件,读取几千行,然后将代码添加到数据库中的表中.有没有一种简单的方法可以在 T-SQL 中实现这一点? 解决方案 如果文件已准备好“按原样"加载(无需数据转换或复杂映射),您可以使用批量插入命令: CREATE PROC dbo.uspImportTextFile AS BULK INSERT Tablename FROM
..
我知道,这个问题已经讨论过好几次了(大多数讨论都是几年前的......). 但是 - 通过这些讨论 - 我感觉,有一个广泛传播的常识是完全错误的:TV-UDF 的性能很差. 很多人更喜欢 SP 来收集数据,为什么? 当我说 TV-UDF 时,我只是在谈论 single-statement-UDF(“内联-UDF").优化器会巧妙地处理这个问题,就好像这部分直接写入查询一样.多语句
..
好的,所以我读了一大堆文章,建议表值函数和交叉应用比标量 udf 提供更好的性能.我想以两种方式编写我的函数,然后测试以查看哪个更好 - 但我无法弄清楚我应该使用/寻找什么来了解哪个是更好的选择. 我使用的是 SQL Server 2005.我试过在数据库引擎优化顾问中运行估计的执行计划、实际执行计划和分析查询,但我不知道它想告诉我什么. 使用 showplan_all on/off
..
版本:SQLServer 8 我想查看 sqlserver 中存储函数的内容,即该函数到底在做什么. 此处列出的所有选项都不适合我.似乎没有任何名为 sys.objects 的数据库/表.我能够查询 information_table.routines 表,但它不包含我正在寻找的函数.我的函数位于: DBName.dbo.functionName 如何查看该函数的内容?
..
SQL Server 2005 在我经常使用的系统目录中有很好的 sys.XXX 视图. 令我困惑的是:为什么有一个 sys.procedures 视图来查看有关存储过程的信息,但没有 sys.functions 视图来查看存储过程的信息您存储的函数是否相同? 没有人使用存储函数吗?我发现它们非常方便,例如计算列之类的! 是否存在缺少 sys.functions 的特定原因,或者
..
我正在尝试编写一个存储过程/函数,它会返回一个包含一行或多行数据的表. 返回的数据取决于以下sql语句中显示的变量: SELECT * FROM table_name AS SD WHERE EXISTS(SELECT DISTINCT S.PARENT_ID FROM table_name AS SWHERE S.COMPONENT_ID = 10011 AND S.CARRIER_G
..
当我删除以下查询中的 ORDER BY 时,我的查询从 15 秒变为 0.05 秒: 简化版: SELECT field1, fiedl2, field 3,FUNC1(1, 2) AS score1,FUNC2(1, 2) AS score2,FUNC3(1, 2) AS score3,FUNC4(1, 2) AS score4发件人表哪里字段 1 = 1ORDER BY (score1
..
伙计们.说,我有一个查询: 选择t.value, my_stored_function(t.value)从 my_table t其中 my_stored_function(t.value) = n_Some_Required_Value 我用以下方式重写了它: 选择值,func_valuefrom (select t.value, my_stored_function(t.value) fu
..
这就是我想要做的. 第一个选项是写每个每个函数在不同的php文件中一个,然后将它们全部包含在一个名为 include 的 php 文件functions.php 和每当我创建一个新页面,让我们说 index.php 我只需包含“functions.php"; 为什么我需要这样做?因为我只需要包含一个文件,所有功能都将包含在内.现在问题可能是服务器负载.我不确定有多少未调用的函数会影响性
..
有没有办法创建一个可以用可变数量的参数(逗号分隔,所以位置)调用的函数.例如,使用 function1(param1,param2) 调用此类函数并可能使用 function1(,param2) 或 function1(param1,) 调用它?我创建了一个带有默认参数的函数,但在调用它时出错: select * from iDxi('3 days',) order by "Date" asc
..