直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接sql语句,再用exec执行。例如:
CREATE PROCEDURE [proc_test]
(@tablename varchar(100))
WITH
EXECUTE AS CALLER
AS
declare @sql varchar(1000);
set @sql='select from '+@tablename
exec(@sql)
GO
再直接执行 exec proc_test '学生表'
WITH RETURN TO CALLER DECLARE CHOICE2光标 - 声明游标Choice2
SELECT CompanyID,DEPTID,SEQ ID SUBMITTIME,
BGRADEDESC HYEAR,产品编号,产品代码PRODUCTDESC
AGRADEID,价格,SFZDPY,的LQUANT,MQUANT,MCQUANT,LCQUANT,
UQUANT OTHQUANT1 OTHQUANT2 OTHQUANT3 OTHQUANT4,EMP1 EMP2状态,AREMARK:
十进制(ABS(MCQUANT,
NULLIF(MQUANT,0) 100,10,2)标签/>从T_SUPPLY_PPB_HYà
LEFT JOIN B开AGRADEID的T_SUPPLY_GRADATION的BGRADEID
,WHERE HYEAR = TO_CHAR(P_NF )| | P_BN
订单由BGRADEID PRODUCTCODE,APRICE;
- 1DECIMAL(P,S)十进制数,小数点位置精度(P)和确定的小数位数(S)。 /> - 精度的号码的数字之和的总数必须小于32。小数位的数字位数的小数部分总是小于或等于精度。
- 如果你不指定精度和小数位数,默认精度的十进制值是5,和默认的小数位数为0。
- 2语法:NULLIF(表达式,表达式)
- 表达式:(常量,列名,函数,子查询或算术运算符,任何按位运算符和字符串运算组)
- 如果两个表达式不相等,NULLIF返回第一个表达式的值。如果他们是平等的,NULLIF返回第一个表达式类型的空值。如果两个表达式都是平等的,表达式的结果是NULL,NULLIF相当于CASE的搜索功能。
配置数据库连接参数如下:
string
strCon
=
"Initial
Catalog='数据库名称';
Server='远程IP地址,1433';
User
ID='登录用户名';
Password='登录用户密码';
Persist
Security
Info=True";
数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
create or replace procedure test(in in_where varchar(100)) --创建一个存储过程test,并可以传入字符串作为参数
declare v_sql varchar(512);
set v_sql = ' delete from table1 where field1 in (' concat in_where concat ') ' ; -- 这里是把传进来的where语句拼起来
execute immediate v_sql; --这里是把语句进行执行---------类似以上这样的存储过程,使用以下的放在进行执行即可:call test( ' ''001'',''002'' ') ; --内容中的一个‘ 需要使用 ’‘ 进行转义
以上就是关于mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法全部的内容,包括:mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法、如何给DB2数据库的存储过程中 where 的in 条件传参数、如何配置数据库连接参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)