我正在将存储过程从SQL Server转换为Oracle。 这个存储过程提供了一个直接的结果集。 我的意思是,如果您在例如Management Studio中调用存储过程,则直接获取结果集。 通过转换为Oracle,我将解决Oracle中不会显示结果集的问题 我在互联网上search,已经看到存储过程应该产生一个REF CURSOR,但我仍然与问题一起写一小段代码来获得结果集的过程。 伪代码: 调用存储过程并获取游标使用该游标执行某些操作,以便显示结果集 有人想法?
在我的应用程序的SQL Server后端中,我想为一堆我的关键表创build历史表,这些关键表将追踪行更改的历史logging。 我的整个应用程序使用存储过程,没有embedded式SQL。 数据库修改这些表的唯一连接将通过应用程序和SP接口。 传统上,我一直在使用触发器来完成这个任务。 如果我在“存储过程”和“触发器”之间做出select,哪个更好? 哪个更快?
我有一个存储过程以某种方式改变用户数据。 我把它传递给user_id,这是它的事情。 我想在一个表上运行一个查询,然后为每个user_id我find运行存储过程一次user_id 我将如何写这个查询?
这是我花了数小时研究的一个问题。 在我看来,现在的RDBMS解决scheme应该已经解决了这个问题,但是迄今为止,我还没有发现任何真正解决了在任何带有数据库后端的Web或Windows应用程序中令人难以置信的普遍需求的东西。 我谈到dynamicsorting。 在我的幻想世界里,它应该像下面这样简单: ORDER BY @sortCol1, @sortCol2 这是新手SQL和存储过程开发人员在整个互联网论坛上给出的典型例子。 “为什么这不可能?” 他们问。 总而言之,最终有人会讲述关于存储过程的编译本质,总体执行计划以及为什么不能直接将参数直接放入ORDER BY子句中的各种其他原因。 我知道你们中的一些人已经在想:“那就让客户做分类吧。” 当然,这将卸载数据库中的工作。 在我们的例子中,我们的数据库服务器甚至没有99%的时间都是汗streamand背,甚至没有多核心,或者每6个月发生一次系统架构的其他改进。 仅仅因为这个原因,让我们的数据库处理sorting不会是一个问题。 另外,数据库非常擅长分类。 他们已经为它做了优化,并且已经有好几年的时间了,它的语言是非常灵活,直观和简单的,最重要的是任何初学SQL编程人员都知道如何去做,更重要的是他们知道如何编辑它,进行修改,维护等。当你的数据库远没有被征税,你只是想简化(缩短!)开发时间,这似乎是一个明显的select。 然后是networking问题。 我已经使用JavaScript来处理HTML表格的客户端sorting,但是它们不可避免地不能满足我的需求,而且,由于我的数据库没有过度征税,并且可以很容易地进行sorting,所以我很难有时间重新编写或推出我自己的JavaScript分类器。 服务器端sorting通常是一样的,尽pipe它已经可能比JavaScript更受欢迎了。 我不是特别喜欢DataSets的开销,所以告我。 但是这又带来了一个不可能 – 或者说不容易的地步。 我已经用先前的系统做了一个非常黑客的方式来获得dynamic分类。 这并不美观,也不直观,简单或灵活,初学者的SQL编写器会在几秒钟内丢失。 这已经不是一个“解决scheme”,而是一个“并发症”。 下面的例子并不意味着公开任何types的最佳实践或者良好的编码风格或者任何东西,也不意味着我作为T-SQL程序员的能力。 他们是他们是什么,我完全承认他们是混乱,不良forms,只是简单的黑客。 我们将一个整数值作为parameter passing给一个存储过程(让我们把这个参数称为“sort”),然后我们确定一堆其他variables。 例如…让我们说sorting是1(或默认): DECLARE @sortCol1 AS varchar(20) DECLARE @sortCol2 AS varchar(20) DECLARE @dir1 AS varchar(20) DECLARE @dir2 AS varchar(20) DECLARE @col1 AS varchar(20) DECLARE […]
我需要searchSQL Server 2008中的存储过程,其中包含可能的数据库字段名称或variables名称。
我花了大约7个小时试图通过反复试验来弄清楚这一点。 我见过的所有在线例子都不起作用,或者不适用,或者只显示我寻找的一半。 下面是我所要求的:1.一个在MYSQL中使用一个IN参数和一个OUT参数的简单存储过程的例子。 2.一个函数的例子(真的很重要,导致在线例子有时没有工作…)从Visual Studio调用,使用C#。 文本调用或存储过程命令types工作。 3. AddWithValue已被弃用。 4.我希望看到out参数实际上工作。 如果MYSQL和visual studio不可能这样做,那也不错。 对于这个特定的例子,MYSQL文档不够彻底。 而且,请不要使用Visual Studio或C#仇恨。 提前致谢! 🙂 编辑: 这是我迄今为止设法做到的,它不工作! MYSQL方面,使用HeidiSQL: CREATE DEFINER=`root`@`localhost` PROCEDURE `login`(IN `stuff` VARCHAR(50), IN `pass` VARCHAR(50), OUT `param3` INT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN set param3 = 0; set param3 = (select count(*) from users where […]
我必须将存储过程添加到MySQL数据库。 问题是,托pipe提供phpMyAdmin来pipe理数据库。 我在互联网上search,想法是运行创build程序的MySQL本地语句,但作为程序代码往往可能有; ,我们必须改变MySQL中的分隔符。 phpMyAdmin没有这个选项。 有没有人试图创build存储过程手动设置锚,或者有什么工作?
我有下面的表格: id | parent_id | quantity ————————- 1 | null | 5 2 | null | 3 3 | 2 | 10 4 | 2 | 15 5 | 3 | 2 6 | 5 | 4 7 | 1 | 9 现在我需要一个存储过程在mysql中recursion调用,并返回计算的数量。 例如,id 6具有5作为父母,其中3作为具有2作为父母的父母。 所以我需要计算4 * 2 * 10 * 3 (= 240)。 我对存储过程相当陌生,将来不会经常使用它们,因为我更喜欢在程序代码中而不是在数据库中使用我的业务逻辑。 […]
我有一个Microsoft SQL存储过程的列名,我想通过传递给它的variables来设置: CREATE PROCEDURE [My_Procedure] @myDynamicColumn varchar(50) AS BEGIN SELECT 'value' AS @myDynamicColumn END 这不起作用(“不正确的语法”)。 如果我用[]包装列名称: SELECT 'value' AS [@myDynamicColumn] 列名字面上输出为“@myDynamicColumn”,而不是实际的值。 有没有办法做到这一点? 我已经看过dynamicSQL文章,但没有什么是我所要求的。
我刚开始阅读关于存储过程。 任何人都可以请帮助我在C#中的Oracle调用存储过程?