我试着在网上找到这个问题的答案,但找不到任何明确的解释:
存储过程中的@是否服务于某种特殊用途/表示某种特定的东西?我对我们什么时候使用它有点困惑,因为示例似乎在用法上有所不同。
例如,在下面的示例中使用@:
DELIMITER $
DROP PROCEDURE IF EXISTS emp_count_2;
CREATE PROCEDURE emp_count_2(OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM Employee;
END
$
DELIMITER ;
/* To invoke this procedure
我刚刚开始尝试MySQL函数,当尝试构建下面的函数时,会出现一个错误。
-> DELIMITER //
-> CREATE FUNCTION addD(d VARCHAR(20), rt VARCHAR(40), a VARCHAR(5), de VARCHAR(35))
-> RETURNS VARCHAR(20)
-> BEGIN
-> DECLARE ret VARCHAR(2
背景:我正在重写我的ASP.NET应用程序--目前它使用的是MySQL数据库,但我也需要支持MySQL(两者同时!)。
大多数工作都已经完成--我使用MySQL连接器/.NET处理C#的MySQL数据库(Visual 2010) --但是我在某些SQL查询上遇到了麻烦。这是我需要执行的SQL查询:
"SELECT @username=username FROM t_Users WHERE id=@id"
这是我的代码:
public static int ExecuteSqlNonQuery(string i_szQuery)
{
bool bConnectionWas
我需要用一个函数修改列中的所有值。我已经编写了一个函数,并将其添加到存储函数中。我已经编写了一个存储过程,它将使用游标循环遍历列中的所有值,并切换这些值。
这是一个运行wamp,php 5.6的windows服务器,mysql 5.0也用mysql 5.6测试过ec2 linux服务器。
DELIMITER $$
DROP PROCEDURE IF EXISTS `my_proc` $$
CREATE PROCEDURE `my_proc`()
BEGIN
DECLARE val1 INT DEFAULT NULL;
DECLARE val
我试图在MySQL中执行PL/SQL语句。但是,当我试图创建一个表时,它会显示一个语法错误。我得到以下错误
CREATE TABLE supplier(supid NUMBER(5) PRIMARY KEY, suppname VARCHAR2(15));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NUMBER(5) PR
因此,我在存储过程中有以下代码:
set @Id = (select id from foo where Name = 'bar');
IF @Id is null THEN
#add missing record
END IF;
但是,数据库似乎只是间歇性地返回一个值。即使我知道select语句将返回一条记录(直接从存储的proc中复制和粘贴)。还有其他人对MySQL有过这个问题吗?
关于我的proc正在做的唯一疯狂的事情:为1062,1452声明继续处理程序。
但这些都不应影响我的查询(我确信只有一条记录)
谢谢
在shell中,我一直试图在下面创建一个集成的幂函数,但我无法让它工作。我确信,除非缺少逗号,否则语法在逻辑上是正确的。它在PHPMyAdmin或Shell上都不起作用:
DELIMITER //
CREATE FUNCTION exponent( m FLOAT, n FLOAT)
RETURNS FLOAT ;
BEGIN
DECLARE a FLOAT;
a=POW(m,n);
RETURN a;
END ; //
数据库:默认Mysql
操作系统: Windows 10 64位
PHP版本: 7.2.1
使
create procedure spGetEmployeByDepartmentIdCount
@DepartmentIdType int ,
@DepartmentIdCount int output
as
Begin
select count(id)
from tblemploye1
where @DepartmentIdType = id
End
Declare @DepartmentIdCount int
Declare @id int
set @id = 1
Execute spGetEmployeBy
环境: MySQL 5.1,Linux
我有一个存储过程,它从一个输入值中计算几个值。这些值作为OUT参数返回。我想对每个行集调用这个过程,并将这些值显示为结果集中的列。这些值具有复杂的关系,因此不容易为每个值构造不同的函数。
问题是:如何获得参数以显示为表中的列?
到目前为止,我的情况如下:
DELIMITER $_$
DROP PROCEDURE IF EXISTS in_out;
CREATE PROCEDURE in_out (
IN s TEXT,
OUT op TEXT,
OUT opn INT,
OUT opd TEXT