oracle - 在用户定义类型的 oracle 中插入/更新/选择值

标签 oracle oracle10g user-defined-types

在oracle中创建用户定义类型

CREATE OR REPLACE TYPE  "CUSTOMER_NAME" AS OBJECT(FIRST_NAME VARCHAR2(20),LAST_NAME VARCHAR2(20))
    /

使用以下代码在表中插入数据。

 INSERT INTO STAFF_INFO(STAFF_NAME,STAFF_PWD) VALUES (CUSTOMER_NAME('" & fname.Text & "','" & lname.Text & "'),'" & password.Text & "')"

但是,当我尝试时

select STAFF_ID,STAFF_PWD,CUSTOMER_NAME(FIRST_NAME,LAST_NAME) from staff_info

出现错误ORA-00904:“LAST_NAME”:标识符无效

当我尝试这个时

select * from staff_info

然后,我收到此错误 ORA-00932:数据类型不一致:预期 NUMBER 已获得 ADS.CUSTOMER_NAME

需要帮助!!

最佳答案

我面前没有 Oracle 实例,但我以前处理过这个问题。我记得我必须做这样的事情:

select a.STAFF_ID,
       a.STAFF_PWD,
       a.STAFF_NAME.FIRST_NAME,
       a.STAFF_NAME.LAST_NAME
  from staff_info a;

尽管字段 customer_name 可能不应该与类型 customer_name 的名称匹配。

关于oracle - 在用户定义类型的 oracle 中插入/更新/选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10265496/

相关文章:

.net - Oracle.Dataaccess 错误 ORA-06502 : PL/SQL: numeric or value error: character string buffer too small

java - 我无法使用 jdbc 将 blob 图像插入 oracle 数据库

sql - oracle中的dense_rank()解析函数

sql - 如何在我的表上找到哪些表有外键?

sql - 尝试创建 CHECK 约束时出现 ORA-00907

sql-server - 是否可以在 SQL CLR 用户定义类型中创建表值*方法*?

regex - oracle正则表达式 - 搜索特定字符串

sql - 如何计算 oracle 10g 中的列值?

c - 用户定义的全局变量在 C 中的两个不同文件中给出不同的值

postgresql - 在 postgres 中,我如何创建一个自定义类型,它只是一个截断为分钟的时间戳