oracle中创建一个过程用来输入一个名字后查询一个表中所有同名的信息
时间: 2024-10-24 11:11:06 浏览: 18
在Oracle中,你可以创建一个过程(Procedure)来接收用户输入的名字作为参数,然后从表中查找所有同名的信息。下面是一个基本的过程示例:
```plsql
CREATE OR REPLACE PROCEDURE find_name_records (p_name IN VARCHAR2) AS
CURSOR emp_cursor IS SELECT * FROM your_table WHERE name = p_name;
BEGIN
OPEN emp_cursor;
IF emp_cursor%ISOPEN THEN
DBMS_OUTPUT.PUT_LINE ('开始查询...');
LOOP
FETCH emp_cursor INTO your_table_columns; -- 替换为实际的表列名
EXIT WHEN emp_cursor%NOTFOUND; -- 当没有更多数据时退出循环
-- 输出同名记录
DBMS_OUTPUT.PUT_LINE ('Name: ' || your_table_columns.name || ', Information: ' || your_table_columns.information);
END LOOP;
DBMS_OUTPUT.PUT_LINE ('查询完成');
ELSE
DBMS_OUTPUT.PUT_LINE ('无法打开游标,检查输入的名字是否有效!');
END IF;
CLOSE emp_cursor;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE ('查询过程中遇到错误:'|| SQLERRM);
END find_name_records;
/
-- 调用过程时传入名字
EXEC find_name_records ('某个人的名字');
```
注意替换`your_table`、`your_table_columns`为你的实际表名和列名。
阅读全文