【问题标题】:creating function in oracle using vb.net [duplicate]使用vb.net在oracle中创建函数[重复]
【发布时间】:2013-04-28 09:01:37
【问题描述】:

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

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

【问题讨论】:

  • 为什么要使用VB前端来创建存储过程?

标签: vb.net oracle


【解决方案1】:

来自docs

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-23
    • 2021-03-23
    • 2014-01-07
    • 2021-11-15
    • 2013-05-12
    • 2022-11-18
    • 2016-08-09
    • 2019-03-22
    相关资源
    最近更新 更多