我想要创建一个动态过程,wich会自动为我生成列,但是有些地方出错了。我必须在我的程序中这样做几次,我真的不想手动去做。
这就是我以前用过的代码
DELIMITER $$
DROP PROCEDURE IF EXISTS RepeatLoopProc$$
CREATE PROCEDURE RepeatLoopProc()
BEGIN
DECLARE x INT;
DECLARE str VARCHAR(255);
Declare @sql nvarchar(4000);
SET x = 0;
我创建了下表:
CREATE TABLE GUID(guid BINARY(16),user VARCHAR(16),expire INT(10));
我的目标是如果一行具有guid = null,则创建默认guid。为此,我创建了一个触发器:
CREATE TRIGGER default_guid
BEFORE INSERT ON GUID
FOR EACH ROW BEGIN
IF new.guid IS NULL THEN
SET new.guid = UNHEX(REPLACE(UUID(), '-', ''));
END IF;
END;
但是,在创
我试图在postgreSQL中的函数中创建临时表。但得到了语法错误。如下图所示,详情如下:
示例:
Create or replace function testing(a varchar(100),b varchar(100))
returns setof record as
$$
Declare
create temp table testtable(x int, y int identity(1,1), z varchar(100));
....
错误:“表”或“表”附近的语法错误。
当我运行comand php bin/console doctrine:migration:migrate时,我得到了这个错误,我不知道是从哪里来的。
命令行错误:在AbstractMySQLDriver.php第99行:
执行'CREATE (id INT AUTO_INCREMENT NOT NULL,email VARCHAR(180) NULL,角色JSON NULL,密码VARCHAR(255) NULL,惟一索引UNIQ_8D93D649E7927C74 (email),主键(Id ))默认字符集utf8mb4 COLLATE utf8mb4_unicode_ci ENG
我试图在MySQL 5.0中对变量做一些简单的操作,但我不能很好地让它工作。我见过很多(非常多!)声明/设置的语法不同,我不确定为什么...在任何情况下,我都可能混淆了它们/选择了错误的/混合了它们。
下面是一个失败的最小片段:
DECLARE FOO varchar(7);
DECLARE oldFOO varchar(7);
SET FOO = '138';
SET oldFOO = CONCAT('0', FOO);
update mypermits
set person = FOO
where person = oldFOO;
我也尝试过用
我想能够搜索使用名称,电话号码,客户,电子邮件等所有在同一个搜索字段。但是有些列是INT列,有些列是VARCHAR列,我得到了一个语法错误,我不知道为什么。我试着使用CAST来解决这个问题,但我仍然会遇到错误。
$search = $_POST['search'];
var_dump($search);
try {
$sql = "SELECT * FROM customers WHERE CAST(custid as VARCHAR) LIKE '%$search%' OR firstname LIKE '%$search%'
我需要从3个表中提取数据,这些数据依赖于其他表的结果,所以我尝试使用if then else结构,但得到了语法错误。就SQL专业知识而言,我可能有些不知所措。我在第一个if附近生成了一个语法错误,随后在每个then附近生成了一个语法错误。这是一个简单的语法错误,还是我正在尝试做一些MS SQL 2000无法处理的事情?
感谢您的意见。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
Go
Begin
Declare @vCasinoName varchar(35)
select @vCasinoName = Description from Gen_Cas
使用T-SQL时,我发现在变量中对表/索引值使用'ALTER INDEX‘时会出现语法错误。有什么办法可以做到这一点吗?我使用的是SQL Server 2005。
我的代码如下所示:
DECLARE @TABLENAME VARCHAR(256)
DECLARE @IDXNAME VARCHAR(256)
DECLARE @SCHEMAID INT
SET @TABLENAME = 'T1'
SET @IDXNAME = 'T1_IDX0'
-- The next line is OK as it hardcodes the variable names
我正在为存储过程创建Server单元测试。我已经完成了大部分,但是我有一个错误
word表附近的不正确语法
我的自动生成的C#测试方法。我想我宣布我的临时表错了。
下面是我的SQL代码中声明临时表的部分。
-- Database unit test for dbo.AutoExpireSchedule
DECLARE @RC as INT,
@Docid as VARCHAR(20),
@NextExpTime as DATETIME,
CREATE OR REPLACE FUNCTION _chkLogin(userid varchar, pwd varchar)
RETURNS BOOLEAN AS
$BODY$
DECLARE
passed BOOLEAN;
BEGIN
SELECT (_password = $2) FROM _vRegistration WHERE _userid = $1;
RETURN passed;
END;
$BODY$
LANGUAGE 'plpgsql';
当我执行上面的代码得到以下错误时,
SELECT _chkLogin('username',
我发现这个函数用于大写字符串中单词的第一个字母,但是当我尝试在PHPMyadmin中用SQL运行它时,它在第8行出现了语法错误。有人能帮我找出问题出在哪里吗?代码如下:
CREATE FUNCTION CAP_FIRST (input VARCHAR(255))
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE len INT;
DECLARE i INT;
SET len = CHAR_LENGTH(input);
SET input = LOWER(input);
SET i = 0;
WHILE (i < len) DO
我试图在PostgreSQL中创建以下函数,但得到以下错误。这是来自一个MySQL过程,我需要将它转换为PostgreSQL。我未能将语法转换为PostgreSQL。我是PostgreSQL的初学者。请帮帮我。
CREATE OR REPLACE FUNCTION public.usp_failed_analyze4()
RETURNS TABLE(status varchar) as
$BODY$
SET @maxdate = (SELECT MAX(analyzetime) FROM wp_analyze_history);
SET @maxdateint = (SELE
在从SQL数据中删除数据时,我遇到了一个问题。我试过各种版本的发言,但都没有结果。下面是我收到的错误和我正在使用的声明。
$sql = "DELETE FROM `saved_holidays` WHERE (subscriberID= $user AND title= $check_value)";
//connect to database then execute the SQL statement.
$db->exec($sql);
错误信息是:
SQLSTATE42000:语法错误或访问冲突: 1064您的SQL语法出现了错误;请查看与MySQL服务器版本对
我正在创建一个存储过程,它将接受数组或记录作为参数。
CREATE TYPE site AS(
siteid integer,
packageid integer,
status text
);
CREATE OR REPLACE FUNCTION packageinfo(IN
info site[]
)RETURNS VARCHAR AS $$
DECLARE
info_element site;
BEGIN
FOREACH info_element IN ARRAY info
LOOP
INSERT INTO site
我无法调试以下语法错误的原因:-
inventory.sh:第94行:意外令牌附近出现语法错误(' inventory.sh: line 94: query_string="INSERT INTO instance_detail ( instance_id,region ) values ('${instancen}‘,'$i');"’
我的脚本中的第94行附近的代码是这样写的
for k in "${instance[@]}";
do
query_string="INSERT INTO i
下面的FOR循环有一个函数中的游标,我得到了一个错误:
错误:语法错误在"AS“或”AS“附近
CREATE OR REPLACE FUNCTION functionName(custom varchar(15)) RETURNS INTEGER AS $$
DECLARE
...
BEGIN
...
FOR loop AS cursor CURSOR FOR
SELECT column FROM table
DO
...
END FOR;
RETURN someValue;
END;
$$
LANGUAG
我使用的是oracle SQL developper。
我正在尝试创建一个函数,它将接受两个参数(名字和姓氏),并将它们作为一个变量返回,姓氏在前面显示。这是我的函数。
CREATE OR REPLACE FUNCTION LASTNAMEFIRST
(
varFirstName IN VARCHAR2,
varLastName IN VARCHAR2
)
RETURN VARCHAR2 AS
BEGIN
DECLARE varFullName VARCHAR2;
DEFINE varFullName := CONCAT(varLastName,' ' ,varFirst
我不明白为什么下面的sp代码会出现语法错误。有人能帮我弄清楚吗?
SQL错误(1064):
您的SQL语法出现了错误;请检查与您的MySQL服务器版本相对应的手册,以获得在第8行使用“从prereq_cou中选择pc.prospectus_courses_id的声明CUR1游标”附近的正确语法。
DELIMITER $$
DROP PROCEDURE IF EXISTS get_prereqs3$$
CREATE PROCEDURE get_prereqs3(IN prosp_courses_id SMALLINT(5))
BEGIN
DECLARE done int DEF
我一直从一条线跳到另一条线,但我似乎找不到我需要的答案。
我希望使用MySQL在单个ExecuteNonQuery函数中执行非选择.NET语句。
下面是我想运行的SQL语句示例组:
DROP procedure IF EXISTS `SubProcA`;
DROP procedure IF EXISTS `SubProcB`;
DROP procedure IF EXISTS `SubProcC`;
CREATE PROCEDURE 'SubProcD'()
BEGIN
SELECT
(<Subselect Statement>) AS A
我正在写一个脚本,我想能随心所欲地运行。不幸的是,SQL非常长,我希望能够更改一些东西。但是,我无法访问脚本中的变量。
下面是一个例子:
SET @MaxResults = 3;
SELECT a, b, c FROM ...<lots of content>... LIMIT @MaxResults;
由于某些原因,这是一个语法错误,我不明白为什么。在MariaDB中定义变量的最佳方法是什么?