我是说mysql那个存储过程输出还是空
时间: 2023-08-12 20:09:39 浏览: 136
抱歉,我之前给出的示例代码中可能存在一些问题。在MySQL中,存储过程无法直接输出结果集。可以使用临时表或者用户变量来存储结果,并通过查询语句来获取。
以下是修正后的代码,使用用户变量来存储生成的序列名称,并通过查询语句输出:
```sql
DELIMITER //
CREATE PROCEDURE generate_oracle_sequence()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE table_name VARCHAR(255);
DECLARE column_name VARCHAR(255);
DECLARE sequence_name VARCHAR(255);
DECLARE cur CURSOR FOR
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'
AND EXTRA = 'auto_increment';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 创建临时表用于存储序列名称
CREATE TEMPORARY TABLE temp_sequences (
Oracle_Sequence VARCHAR(255)
);
OPEN cur;
read_loop: LOOP
FETCH cur INTO table_name, column_name;
IF done THEN
LEAVE read_loop;
END IF;
SET sequence_name = CONCAT('SEQ_', table_name, '_', column_name);
-- 创建Oracle序列
SET @sql = CONCAT('CREATE SEQUENCE ', sequence_name,
' START WITH 1 INCREMENT BY 1 NOCACHE');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 存储序列名称到临时表
INSERT INTO temp_sequences (Oracle_Sequence) VALUES (sequence_name);
END LOOP;
CLOSE cur;
-- 输出序列名称
SELECT Oracle_Sequence FROM temp_sequences;
-- 删除临时表
DROP TABLE temp_sequences;
END //
DELIMITER ;
```
请将 `'your_database_name'` 替换为你的数据库名称。
在修正后的代码中,我们创建了一个临时表 `temp_sequences` 用于存储序列名称。在循环中,我们将生成的序列名称插入到临时表中。最后,通过查询语句输出临时表中的序列名称。
你可以执行以下语句调用存储过程并输出结果:
```sql
CALL generate_oracle_sequence();
```
这样,你就能够在MySQL中执行该存储过程,并输出生成的Oracle序列名称。然后,你可以根据输出的序列名称,在Oracle数据库中创建相应的序列。
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.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://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)