coldfusion - cfprocparam 抛出错误执行数据库查询
问题描述
运行此代码时发生此错误
过程 studentinsert 没有参数并且提供了参数。
<cfstoredproc procedure="studentinsert" datasource="student" result="res">
<cfprocparam cfsqltype="cf_sql_varchar" value="john">
<cfprocparam cfsqltype="cf_sql_varchar" value="cse">
</cfstoredproc>
mssql 创建的表
CREATE TABLE student(
studentid int identity(1,1) PRIMARY KEY,
studentname varchar(255),
dept varchar(255),
);
创建过程
CREATE PROCEDURE studentsub
AS
BEGIN
SELECT *FROM student
END;
执行学生
CREATE PROCEDURE studentinsert
AS
BEGIN
INSERT INTO student (studentname,dept)
VALUES ('john','cse');
END
解决方案
错误很明显 - 您需要在存储过程中定义参数,例如:
CREATE PROCEDURE studentinsert @studentname varchar(255), @dept varchar(255)
AS
BEGIN
INSERT INTO student (studentname,dept)
VALUES (@studentname, @dept);
END
请注意,此示例使用与您问题中的表定义相同的列类型,但是在大多数应用程序中,我建议使用 nvarchar 而不是 varchar,除非您确定永远不需要支持带有 varchar 不支持的 unicode 字符的名称。
推荐阅读
- python - 根据 acf 和 pacf 图确定 p、q 值并根据图识别 SARIMA 的参数
- python - 如何实现具有周期性边界条件的 ODE 解?
- amazon-web-services - 如何从 CloudFormation 中的父模板“导出”子网和 VPCId
- javascript - Flask 获取表单数据到 celery 任务队列
- javascript - Javascript 从原始 JSON 创建自定义格式的 JSON
- stata - 与多个命令一起使用时,捕获不起作用
- python - 如果一列包含指定列表中的某些值,如何在熊猫数据框中删除行
- python - Pytest 使用夹具参数化测试
- c++ - 无法将 std::array 容器拆分为 2 个子部分
- amazon-web-services - 用于生产 EC2 的 Docker