oracle查询存储过程
时间: 2023-08-18 10:11:56 浏览: 41
Oracle存储过程中的select into语句用于将查询结果赋值给变量。例如:
```
DECLARE
v_name VARCHAR2(50);
BEGIN
SELECT name INTO v_name FROM employees WHERE employee_id = 100;
DBMS_OUTPUT.PUT_LINE('Employee name is ' || v_name);
END;
```
以上代码中,查询语句将从employees表中获取employee_id为100的员工姓名,并将其赋值给变量v_name。最后,使用DBMS_OUTPUT.PUT_LINE语句将结果输出到控制台。
相关问题
oracle查询存储过程语句
你可以使用以下语句查询 Oracle 数据库中的存储过程:
```sql
SELECT text
FROM all_source
WHERE type = 'PROCEDURE'
AND owner = '<存储过程所有者>'
AND name = '<存储过程名称>';
```
请确保将 `<存储过程所有者>` 和 `<存储过程名称>` 替换为实际的值。这条语句将返回该存储过程的完整代码。
oracle 查询存储过程修改记录
如果您想要查询 Oracle 存储过程的修改记录,可以通过以下步骤进行:
1. 执行以下语句,创建一个用于记录存储过程修改记录的表:
```sql
CREATE TABLE sp_changes (
sp_name VARCHAR2(100),
change_date DATE,
change_type VARCHAR2(20),
change_description VARCHAR2(4000)
);
```
2. 创建一个触发器,将存储过程的修改记录插入到上面创建的表中:
```sql
CREATE OR REPLACE TRIGGER sp_changes_trg
AFTER ALTER ON SCHEMA
DECLARE
sp_name VARCHAR2(100) := ora_dict_obj_name;
change_date DATE := SYSDATE;
change_type VARCHAR2(20);
change_description VARCHAR2(4000);
BEGIN
IF ora_dict_obj_type = 'PROCEDURE' THEN
change_type := 'ALTER PROCEDURE';
change_description := 'Procedure ' || sp_name || ' was altered';
ELSE
change_type := 'ALTER FUNCTION';
change_description := 'Function ' || sp_name || ' was altered';
END IF;
INSERT INTO sp_changes VALUES (sp_name, change_date, change_type, change_description);
END sp_changes_trg;
```
3. 在存储过程被修改时,触发器会将修改记录插入到 `sp_changes` 表中。您可以使用以下 SQL 查询语句,查看修改记录:
```sql
SELECT * FROM sp_changes;
```
这将返回 `sp_changes` 表中的所有记录。您可以根据需要对查询结果进行过滤和排序。