标签: procedure

PL/SQL过程参数中的类似通用行为

假设我在PL/SQL中定义了一些数据类型:

TYPE foo_t IS RECORD (...);
TYPE foo_table_t IS TABLE OF foo_t INDEX BY BINARY_INTEGER;

TYPE bar_t IS RECORD (...);
TYPE bar_table_t IS TABLE OF bar_t INDEX BY BINARY_INTEGER;
Run Code Online (Sandbox Code Playgroud)

我是否可以编写一个能够接受从TABLE派生的任何数据类型(例如,a foo_table_t或a bar_table_t)作为参数的过程?该过程不需要知道表的行类型.一个简单的例子:

PROCEDURE remove_last(some_table ...) IS
BEGIN
    some_table.DELETE(some_table.LAST);
END;
Run Code Online (Sandbox Code Playgroud)

generics oracle plsql procedure

3
推荐指数
1
解决办法
2884
查看次数

如何通过php更改mysql分隔符

我在mysql终端中用一组sql语句创建了一个事件,它运行正常.但是我想从php脚本创建这个事件.我的查询如下.

DELIMITER |

CREATE EVENT e_cart

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 MINUTE

DO

BEGIN

SET @var_orderid = '';

SET @var_orderid = (SELECT orderid FROM order WHERE id=308);

IF @var_orderid = NULL THEN

UPDATE order SET status=1 WHERE id=308;

END IF;
END |

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

这导致: -

错误:SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在'DELIMITER |附近使用正确的语法 在第1行的CUR'上安排事件e_cart ON SCHEDULE

如何从php脚本执行此事件?

php mysql events procedure

3
推荐指数
1
解决办法
2111
查看次数

批处理脚本传递多个参数进行调用

我编写了一个脚本,其中包含一个函数,该函数应循环遍历列表并返回给定所述列表中项目索引的值.我有一个名为的函数::find应该有2个参数:列表和项目位置.我不确定如何处理函数中的多个参数.该脚本如果我更换运行良好%LIST%%MY_LIST%内环路和我删除了%MY_LIST%从参数列表THT传递给call :find,但我真的想知道如何传递多个参数.我认为它们只是作为整个字符串传递给函数...

@echo off
setlocal enableDelayedExpansion
cls

:: ----------------------------------------------------------
:: Variable declarations
:: ----------------------------------------------------------
set RETURN=-1
set MY_LIST=("foo" "bar" "baz")
set TARGET_INDEX=1

:: ----------------------------------------------------------
:: Main procedure
:: ----------------------------------------------------------
call :log "Finding item %TARGET_INDEX%..."
call :find %MY_LIST% %TARGET_INDEX%
call :log "The value is: %RETURN%"
goto Exit

:: ----------------------------------------------------------
:: Function declarations
:: ----------------------------------------------------------
:find
call :log "Called `:find` with params: [%*]"
set /a i=0
set LIST=%~1 & shift

for %%a …
Run Code Online (Sandbox Code Playgroud)

windows parameters procedure function batch-file

3
推荐指数
1
解决办法
2万
查看次数

postgresql:"DO"处或附近的语法错误

我正在尝试运行DO块,例如这个(从本论坛的帖子中复制)

DO $$
DECLARE x int;
    BEGIN
    x := 10;
    RAISE NOTICE '>>>%<<<', x;
END;
$$
Run Code Online (Sandbox Code Playgroud)

但是会发生什么:

错误:"DO"处或附近的语法错误

SQL状态:42601

性格:1

没关系,我操作的DO块,DO语句根本不起作用(包括从doucment复制/粘贴的例子,我想知道可能是什么原因.请问有人帮助我吗?

非常感谢

postgresql syntax procedure plpgsql

3
推荐指数
1
解决办法
4930
查看次数

每小时自动运行oracle程序

我在oracle中创建了一个简单的过程.伪代码是

CREATE OR REPLACE
 procedure  update_summary
 begin
  delete from summary table;
  make different calculations from different tables, insert values row by row in 
  summary table;
 end;
Run Code Online (Sandbox Code Playgroud)

我希望这个程序每小时自动运行,因为如果我从我的应用程序的前端调用它,它安静的时间饥饿,用户认为该页面已被挂起.帮助将受到高度赞赏.

oracle plsql procedure

3
推荐指数
1
解决办法
6524
查看次数

如何在 MySQL 函数中将 SQL 选择查询转换为格式化的 HTML 表

我正在寻找一种通过将任何查询输出转换为 HTML 表来在 MySQL(不带 PHP)中生成有效 HTML 代码的方法。

这是我到目前为止的进展,显然,我被卡住了。我希望我能得到一些帮助,谢谢。

1. "dynSQL" - 一个程序,用于获取任何 Select 查询并从中创建一个命名表

由于 MySQL 不允许在函数中进行动态查询,因此我调用了一个创建命名表tmp. 我不能使用临时表,因为 information_schema 中没有关于临时表的信息(在 mysql 5.6 中)

CREATE DEFINER=`root`@`%` PROCEDURE `dynSQL`(SQL_QUERY TEXT)
BEGIN
set @SQLQ := 'Drop table if exists tmp;';
PREPARE stmt from @SQLQ;
Execute stmt;

SET @SQLQ := concat('create table tmp as ',SQL_QUERY);
PREPARE stmt from @SQLQ;
Execute stmt;

-- I'm adding a auto increment ID column to be able to loop through the rows later

SET @SQLQ := "ALTER …
Run Code Online (Sandbox Code Playgroud)

html mysql sql procedure

3
推荐指数
1
解决办法
3286
查看次数

如何在 SQL Server 中将波斯日期转换为公历日期

我的表中有一些波斯日期,sql server格式如下:

1394/05/14
Run Code Online (Sandbox Code Playgroud)

我必须使用stored procedure将其转换为公历日期,因为我需要将它与今天的日期进行比较。

有谁知道解决方案?我找到了一些代码,但它们在闰年等方面有问题。

顺便说一句,我有以下代码,C#但我认为我必须使用,sql server proc因为这个过程应该以固定的时间表执行。

    public static DateTime ConvertToGregorianDate(string persianDate)
    {
        PersianCalendar pcalendar = new PersianCalendar();
        int Year = int.Parse(persianDate.Split('/')[0]);
        int Month = int.Parse(persianDate.Split('/')[1]);
        int Day = int.Parse(persianDate.Split('/')[2]);
        return new DateTime(Year, Month, Day, pcalendar);
    }
Run Code Online (Sandbox Code Playgroud)

提前谢谢。

c# sql-server procedure

3
推荐指数
2
解决办法
5616
查看次数

Mysql创建插入过程语句不完整

我正在尝试为我的数据库编写一些日志过程。我用以下语句创建一个过程:

 create procedure prc_wirte_log (
    in p_schema varchar(255),
    in p_item varchar(255),
    in p_message varchar(255)
)
begin
    insert into weather.log (`schema`, item, message) values (p_schema, p_item, p_message);
end;
Run Code Online (Sandbox Code Playgroud)

我得到错误 Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 7 0.063 sec

为什么?MySQL Workbench的意思是Incomplet Statment: excepting ;在插入查询之后。

我能做什么?

sql stored-procedures procedure mariadb

3
推荐指数
1
解决办法
2852
查看次数

SQL Proc'转换失败'从varchar到int.为何转换?

我的问题是......为什么从varchar转换为int?我不确定它想要做什么

CREATE PROCEDURE #myTestProcedure 
(
    @TransId VARCHAR(15)
) 
AS
BEGIN
    DECLARE @Result VARCHAR(15);

WITH TestCTE (TransId, AdjRefTransId) AS
(
    SELECT TRANSID, ADJREFTRANSID
    FROM dbo.MyTable
    WHERE TRANSID = @TransId

    UNION ALL

    SELECT pet.TRANSID, pet.ADJREFTRANSID
    FROM dbo.MyTable AS pet
    JOIN TestCTE
        ON TestCTE.ADJREFTRANSID = pet.TRANSID
)

SELECT @Result = 
(
    SELECT MAX(MyResult)
    FROM dbo.MyOtherTable
    WHERE TRANSID = TestCTE.TRANSID
)        
FROM TestCTE
WHERE TestCTE.ADJREFTRANSID = ''

RETURN @Result
END

EXEC dbo.#myTestProcedure @TransId = 'MyTransId'
Run Code Online (Sandbox Code Playgroud)

错误:

Msg 245, Level 16, State 1, Procedure #myTestProcedure …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server procedure

3
推荐指数
1
解决办法
50
查看次数

如何调试Snowflake存储过程?

我正在使用雪花云数据库,请帮我提供一个工具来调试程序或功能。

procedure snowflake-cloud-data-platform

3
推荐指数
1
解决办法
8020
查看次数