使用vb.net在oracle中创建函数

时间:2013-04-28 09:01:37

标签: vb.net oracle

我想在使用循环的许多数据库中使用vb.net在oracle中创建一个函数。我正在使用此查询

CREATE OR REPLACE FUNCTION promo_code_fun(store_id IN VARCHAR2,ws_id IN VARCHAR2,trn_id IN VARCHAR2,business_dt IN VARCHAR2,line_no IN integer,item_cd IN VARCHAR2,creation_time timestamp)

问题是它是创建函数但有错误..在oracle中它会自动在函数名之前添加一个模式名称。我通过vb代码传递了模式名称。但它会产生错误的功能。

CREATE OR REPLACE FUNCTION " & """" & SchemaName & """" & ".promo_code_fun(store_id IN VARCHAR2,ws_id IN VARCHAR2,trn_id IN VARCHAR2,business_dt IN VARCHAR2,line_no IN integer,item_cd IN VARCHAR2,creation_time timestamp)

如果我在toad编辑器中复制此代码并手动运行它会创建没有错误的函数..

CREATE OR REPLACE FUNCTION "23914".promo_code_fun(store_id IN VARCHAR2,ws_id IN VARCHAR2,trn_id IN VARCHAR2,business_dt IN VARCHAR2,line_no IN integer,item_cd IN VARCHAR2,creation_time timestamp)

手动运行w / o双引号时出错。

1 个答案:

答案 0 :(得分:0)

来自docs

  

不带引号的标识符必须以数据库字符集中的字母字符开头。带引号的标识符可以以任何字符开头。

因此,如果要使用模式名称23914,则必须用双引号括起来。