在oracle里面怎么不能够给SQL语句的参数赋空值?

Choice 2003-10-20 04:14:58
strMysql="Insert into Org_type(Org_Descript,Org_Type,Gov,Org_Level)";
strMysql+="values(:OrgDescript,:OrgType,:Gov,:OrgLevel)";
oraCmd.CommandText=strMysql;
oraCmd.Parameters.Add(":OrgDescript",strOrgDescript);
oraCmd.Parameters.Add(":OrgType",iOrgType.ToString());
oraCmd.Parameters.Add(":Gov",iGov.ToString());
oraCmd.Parameters.Add(":OrgLevel",strOrgLevel);

其中Org_Level是可空字段。strOrgLevel是直接从控件上取值。
问题:
当strOrgLevel取回来的是空值(""),运行时会出错,提示:
Parameter ':OrgLevel': No size set for variable length data type: String.
...全文
277 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Choice 2003-10-22
  • 打赏
  • 举报
回复
有没有人遇到这种情况?
Choice 2003-10-21
  • 打赏
  • 举报
回复
to gOODiDEA(无语) :
1)不添加不行的。
2)添加System.DBNUll.Value也不行。

我那个字段有时也必须为空的,不能这样做很烦。
在SQL SERVER里面没有这个问题,但是给出错提示的不是ORACLE,因为如果是ORACLE出错是显示“ORA-01008:”之类的提示的,它是单纯的.NET出错提示
gOODiDEA 2003-10-20
  • 打赏
  • 举报
回复
先判断一下,如果为空就不添加或者添加System.DBNUll.Value
Choice 2003-10-20
  • 打赏
  • 举报
回复
1)to YAOTIEBING(我爱我家)
strOrgLevel是string变量,我省了strOrgLevel=txt_OrgLevel.Text 所以不是这个问题。
2)to xavier_lee(我自横刀哈哈笑!)
strOrgLevel="''"的结果是把两个单引号放进了这个字段
3)to ylc001(白面包青天)
该字段的默认值我就是要是空
ylc001 2003-10-20
  • 打赏
  • 举报
回复
你不会用数据库的默认值吗?
xavier_lee 2003-10-20
  • 打赏
  • 举报
回复
sorry, that is wrong.

strOrgLevel = "''"
xavier_lee 2003-10-20
  • 打赏
  • 举报
回复
if strOrgLevel="" then
strOrgLevel = nothing
end if
yaotiebing 2003-10-20
  • 打赏
  • 举报
回复
oraCmd.Parameters.Add(":OrgLevel",strOrgLevel.tostring);

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧