DELIMITER $$ CREATE PROCEDURE insert_data_from_txt(IN file_path VARCHAR(255), IN file_name VARCHAR(255)) BEGIN DECLARE done INT DEFAULT FALSE; DECLARE line VARCHAR(255); DECLARE col1 VARCHAR(8); DECLARE col2 VARCHAR(5); DECLARE col3 VARCHAR(6); DECLARE file_cursor CURSOR FOR SELECT * FROM file_path; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; SET @query = CONCAT('SELECT * FROM ', file_path, file_name); PREPARE stmt FROM @query; OPEN file_cursor; FETCH file_cursor INTO line; WHILE NOT done DO SET col1 = TRIM(SUBSTRING(line, 1, 8)); SET col2 = TRIM(SUBSTRING(line, 9, 5)); SET col3 = TRIM(SUBSTRING(line, 14, 6)); INSERT INTO axsdc (name, aaaa, cccc) VALUES (col1, col2, col3); FETCH file_cursor INTO line; END WHILE; CLOSE file_cursor; END$$ DELIMITER ; CALL insert_data_from_txt('/home/lighthouse/', 'abcd.txt');
时间: 2024-03-15 07:43:38 浏览: 81
这是一个 MySQL 存储过程的代码,用于将一个文本文件中的数据插入到数据库表中。存储过程接受两个参数,一个是文件路径,一个是文件名。存储过程通过游标遍历文件中的每一行数据,并将数据解析成三个字段,然后将这三个字段插入到表 axsdc 中的 name、aaaa、cccc 字段中。最后通过调用存储过程来将数据从文本文件中插入到数据库表中。
相关问题
delimiter $$ create procedure mydb6_view.proc01() begin select empno,ename from emp; end $$ delimiter ;
这是一个 MySQL 存储过程,它的作用是查询 emp 表中的员工编号和姓名。下面是该存储过程的代码解释:
- `delimiter $$`:将语句结束符号从分号 `;` 改为双美元符号 `$$`,这样可以在存储过程中使用分号,避免与 SQL 语句中的分号混淆。
- `create procedure mydb6_view.proc01()`:创建一个名为 `mydb6_view.proc01` 的存储过程。
- `begin`:开始存储过程的代码块。
- `select empno,ename from emp;`:查询 emp 表中的员工编号和姓名。
- `end`:结束存储过程的代码块。
- `$$`:结束语句。
最后,`delimiter ;` 将语句结束符号恢复为默认的分号 `;`。
要执行该存储过程,可以使用以下代码:
```
call mydb6_view.proc01();
```
执行该代码后,将会查询 emp 表中的员工编号和姓名,并输出结果。
DROP PROCEDURE proc_morefight; DELIMITER $$ CREATE PROCEDURE proc_morefight() BEGIN select * FROM table_fight; END $$ DELIMITER ; CALL proc_morefight(); 改成sql server语言
在 SQL Server 中,需要使用 `GO` 语句分隔不同的批处理命令。下面是将这段代码转换成 SQL Server 语言的示例:
```
IF OBJECT_ID('proc_morefight', 'P') IS NOT NULL
DROP PROCEDURE proc_morefight;
GO
CREATE PROCEDURE proc_morefight
AS
BEGIN
SELECT * FROM table_fight;
END;
GO
EXEC proc_morefight;
```
这里的 `IF OBJECT_ID` 语句用于检查存储过程是否存在,如果存在则先删除。然后使用 `CREATE PROCEDURE` 语句创建存储过程。在存储过程的主体中,使用 `SELECT` 语句查询 `table_fight` 表的所有数据。最后,使用 `EXEC` 语句调用存储过程。注意,在 SQL Server 中不需要 `DELIMITER` 语句。
阅读全文
相关推荐
















