我正在创建一个许可表,它由一个表中的两个属性和另一个表中的一个组成。许可证类型和客户位于主客户表中,而License_ID位于另一个客户表中,因为只有特定类型的客户才能拥有License_id。
我想创建一个许可证表,其中包含许可证编号的主键,然后是该许可证编号的类型和customer_ids。
尝试创建表时会发生此错误,我正在尝试这样做,因此在创建表时,它只会使License_number不是0 / null。我还想将License_number作为主键,以及外键和其他2个属性的外键。
我该怎么做?
CREATE TABLE License AS SELECT
DISTINCT License_number, License_type, cust_id
FROM yoda_60
WHERE License_number !=0;
错误报告 -
ORA-01722:无效的号码
01722. 00000 - "无效的号码"
*原因:指定的号码无效 *操作:指定有效数字。
答案 0 :(得分:1)
据推测License_Number
是一个字符串。因此,将比较放在单引号中:
WHERE License_number <> '0';
正在发生的事情是,与数字的比较导致所有 License_Number
被转换为数字 - 有些不是数字。因此,错误。
这也会过滤掉NULL
值,但您可以明确:
WHERE License_number <> '0' AND License_number IS NOT NULL;