name1.substring(begin, end)
时间: 2024-05-26 16:15:33 浏览: 9
这是一个 Java 中 String 类的方法,用于获取字符串 name1 中从 begin 到 end-1 的子串。例如,如果 name1 是 "Hello, World!",begin 是 3,end 是 7,那么 name1.substring(3, 7) 将返回 "lo, "。注意,这个方法返回的子串不包括 end 所指向的字符。如果 end 大于 name1 的长度,那么 substring 方法会自动将 end 截断为 name1 的长度。如果 begin 大于等于 end,那么 substring 方法将返回一个空字符串。
相关问题
CREATE DEFINER=`taobao`@`%` PROCEDURE `insert_data_from_txt`(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 INFORMATION_SCHEMA.FILES WHERE FILE_NAME = file_name; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 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 (name1, aaaa, cccc) VALUES (col1, col2, col3); FETCH file_cursor INTO line; END WHILE; CLOSE file_cursor; END 这段存储过程 运行 CALL insert_data_from_txt('abcd.txt');后报错 ERROR 1328 (HY000): Incorrect number of FETCH variables
这个错误是因为在 FETCH file_cursor INTO line; 这一行中,变量的数量不正确。在你的存储过程中,只有一个变量 line,但是在 FETCH 语句中,使用了多个变量。可以尝试修改为:
FETCH file_cursor INTO line;
或者修改文件中每行数据的格式,以匹配你在存储过程中定义的变量数量和类型。
CREATE DEFINER=`taobao`@`%` 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
这是一个用于从文本文件中读取数据并插入到MySQL数据库中的存储过程。存储过程的具体执行流程如下:
1. 定义变量和游标:定义一个`done`变量用于标记游标是否已经遍历完所有记录,定义`line`、`col1`、`col2`和`col3`变量用于存储文件中的每一行数据和解析后的列数据,定义`file_cursor`游标用于遍历文件中的每一行数据。
2. 准备查询语句:使用`CONCAT`函数构造查询语句,将文件路径和文件名合并成一个完整的查询路径,并将查询语句存储在`@query`变量中。
3. 打开游标:使用`PREPARE`语句将查询语句编译成可执行的语句,并使用`OPEN`语句打开游标。
4. 遍历数据:使用`FETCH`语句从游标中获取一行数据,并使用`TRIM`函数和`SUBSTRING`函数解析出每一列的数据,并将其存储在对应的变量中。然后,使用`INSERT INTO`语句将这些列数据插入到目标表中。
5. 关闭游标:使用`CLOSE`语句关闭游标。
注意,存储过程中的表名`axsdc`和游标中的表名`file_path`都需要根据实际情况进行修改,以便正确地引用目标表和文件路径。此外,存储过程中使用了`DEFINER`选项来指定存储过程的执行者,如果该用户没有足够的权限执行存储过程,需要为该用户添加相应的权限。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)