Plsql MariaDB pl/sql用于填充日期为“1990-01-01”到“2000-12-31”的表

Plsql MariaDB pl/sql用于填充日期为“1990-01-01”到“2000-12-31”的表,plsql,mariadb,procedure,populate,auto-populate,Plsql,Mariadb,Procedure,Populate,Auto Populate,我试图创建一个过程或函数来填充MariaDB中的表名Time_Dim DELIMITER / CREATE FUNCTION filltimeDim () BEGIN DECLARE vQuarter VARCHAR(6); DECLARE vMonth_Name VARCHAR(20); DECLARE vdate_id date; DECLARE vyear_id CHAR(4); DECLARE vweekly_Name VARCHAR(20);

我试图创建一个过程或函数来填充MariaDB中的表名Time_Dim

DELIMITER /
CREATE FUNCTION filltimeDim ()
BEGIN
    DECLARE vQuarter VARCHAR(6);
    DECLARE vMonth_Name VARCHAR(20);
    DECLARE vdate_id date;
    DECLARE vyear_id CHAR(4);
    DECLARE vweekly_Name VARCHAR(20);
    DECLARE vMonth_Num TINYINT(10);
    DECLARE vweekday_Num TINYINT(10);
    BEGIN
        SET vdate_id =  CONVERT('1998-01-01', DATE);
        WHILE (CONVERT('vdate_id' USING utf8) <=  '2002-12-31')
        LOOP
            SET vyear_id =  YEAR(vdate_id);
            SET vQuarter =  QUARTER(vdate_id);
            SET vMonth_Name =  MONTHNAME(vdate_id);
            SET vweekly_Name =  DAYOFWEEK(vdate_id);
            SET vMonth_Num =  MONTH(vdate_id);
            SET vweekday_Num =  WEEKDAY(vdate_id);
            INSERT INTO Time_Dim VALUES 
            (vdate_id, vyear_id, vquarter, vMonth_Name,vweekly_Name,vMonth_Num,vweekday_Num);
            SET vdate_id = vdate_id + 1;
        END LOOP;   
    END;
END; /
错误1064 42000:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解使用near“LOOP”的正确语法 设置vyear\u id=YEARvdate\u id;
在第13行设置vQuarter=QUA,MariaDB中while的语法为:

[begin_label:] WHILE search_condition DO
    statement_list
END WHILE [end_label]
您不应该使用“循环”关键字

您可以使用:

-挑选 -日期:2002-12-31,1990-01-014747 插入'Time_Dim' `vdate_id`, `vyear\U id`, `四分之一`, `vMonth_名称`, `vweekly_Name`, `月数`, `vweekday_Num` 选择 `第`.`天`, 年月日, 四分之一日, MONTHNAME'der`.'day`, DAYOFWEEK'der`.'day`, 月日, 工作日'der'。'day` 从…起 选择 “1990-01-01”+间隔日` 从…起 `序号0至4747` `德`;
请参阅。

您是否查阅了手册?因为它的字面意思是错误的。“PL/SQL”是Oracle在数据库编程语言中的名称。我推测MariaDB有Oracle兼容模式,但上面的代码不是PL/SQL。这是否回答了您的问题?William Robertson你说得对,我们如何称呼maria的数据库编程语言?是的,markusjm,它确实回答了我的问题。