Stored procedures 使用变量filename加载数据

Stored procedures 使用变量filename加载数据,stored-procedures,load-data-infile,Stored Procedures,Load Data Infile,我试图编写一个存储过程,在其中传递要读取的路径和文件名。我尝试了各种方法,但总是遇到问题,错误消息如下: Syntax Error: Unexpected 'pathFile' (Identifier) 下面您可以看到我运行的导致错误的过程的简化版本。知道它为什么会抛出语法错误吗 CREATE PROCEDURE `test` (IN pathFile VARCHAR(100)) BEGIN LOAD DATA LOCAL INFILE pathFile INTO TABLE dat

我试图编写一个存储过程,在其中传递要读取的路径和文件名。我尝试了各种方法,但总是遇到问题,错误消息如下:

Syntax Error: Unexpected 'pathFile' (Identifier)
下面您可以看到我运行的导致错误的过程的简化版本。知道它为什么会抛出语法错误吗

CREATE PROCEDURE `test` (IN pathFile VARCHAR(100))
BEGIN

    LOAD DATA LOCAL INFILE pathFile INTO TABLE dataNew
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\r\n'
    (dat, x1, x2);

END

您的
加载数据
似乎是
SQL*加载程序
控制文件的语法。将
CREATE过程
包装在
SQL*加载程序
控制文件周围将不起作用。您真的在尝试使用
SQL*Loader
(如果文件存在于您的客户机上,您通常会使用的外部应用程序)吗?如果该文件存在于数据库服务器上,可能您希望定义一个外部表,并提供一个过程,在该外部表上执行
ALTER
,以更改读取该文件的文件。抱歉,应该更清楚:我使用的是MYSQL(+Workbench)。我对SQL还是新手。我试图将一组数据(来自csv文件)加载到一个空表中,然后对其进行修改,并使用INSERT将其推送到现有表中。数据集约5000条记录,共6列。我认为ALTER不符合我的需要。。。但我可能误解了。加载数据作为独立脚本可以正常工作,但在存储过程中似乎不起作用。因此,这可能是存储过程的限制。我认为这是一个常规需求,因此必须有一个简单的解决方案,我没有看到。您的
加载数据
似乎是
SQL*加载程序
控制文件的语法。将
CREATE过程
包装在
SQL*加载程序
控制文件周围将不起作用。您真的在尝试使用
SQL*Loader
(如果文件存在于您的客户机上,您通常会使用的外部应用程序)吗?如果该文件存在于数据库服务器上,可能您希望定义一个外部表,并提供一个过程,在该外部表上执行
ALTER
,以更改读取该文件的文件。抱歉,应该更清楚:我使用的是MYSQL(+Workbench)。我对SQL还是新手。我试图将一组数据(来自csv文件)加载到一个空表中,然后对其进行修改,并使用INSERT将其推送到现有表中。数据集约5000条记录,共6列。我认为ALTER不符合我的需要。。。但我可能误解了。加载数据作为独立脚本可以正常工作,但在存储过程中似乎不起作用。因此,这可能是存储过程的限制。我假设这是一个常规需求,所以一定有一个简单的解决方案,我没有看到。