0

我想在使用循环的许多数据库中使用 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)

在不带双引号的情况下手动运行时会出错。

4

1 回答 1

0

文档

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

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

于 2013-04-28T17:44:31.740 回答