基于gaussdb数据库,写一个查询表的存储过程,入参proc_name
时间: 2024-03-03 09:50:21 浏览: 21
好的,以下是一个基于GaussDB数据库的查询表的存储过程,包含一个入参 proc_name,用于指定要查询的表的名称:
```
CREATE PROCEDURE sp_query_table
@proc_name VARCHAR(50)
AS
BEGIN
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'SELECT * FROM ' + @proc_name;
EXECUTE sp_executesql @sql;
END;
```
此存储过程将接受一个名为 proc_name 的输入参数,您可以在调用存储过程时将要查询的表名传递给它。存储过程将在内部构建一个动态 SQL 查询语句,并使用 EXECUTE sp_executesql 执行它。这将返回指定表中的所有行和所有列。
请注意,使用动态 SQL 查询语句时,需要小心防止 SQL 注入攻击。因此,必须对任何传递给存储过程的参数进行严格的验证和过滤。
相关问题
调用存储过程proc_name,模糊查询含有铅笔的商品信息
假设存储过程proc_name的输入参数为关键词keyword,可以使用类似如下的SQL语句实现模糊查询:
```
CREATE PROCEDURE proc_name
@keyword varchar(50)
AS
BEGIN
SELECT * FROM products WHERE product_name LIKE '%' + @keyword + '%'
END
```
以上存储过程的作用是查询商品表products中商品名称包含关键词@keyword的所有商品信息。在执行存储过程时,需要传入一个关键词参数来进行查询,例如:
```
EXEC proc_name '铅笔'
```
这将返回所有商品名称包含“铅笔”的商品信息。
创建一个存储过程proc_student,用来查看student表中所有信息
好的,以下是创建存储过程proc_student的SQL语句:
```
CREATE PROCEDURE proc_student
AS
BEGIN
SELECT * FROM student;
END
```
以上语句将创建一个名为proc_student的存储过程,执行该存储过程时,将会查询student表中的所有信息并返回结果。