比较oracle中的数据类型where condition

时间:2017-11-29 12:44:34

标签: sql oracle oracle11g

to_t.COUNTRY_CD is varchar2(10 byte)

from_t.DESCRIPTION is varchar2(60 bytes)

我想将from_t.DESCRIPTION的数据插入到to_t.COUNTRY_CD&#39>

当我插入时,我需要过滤掉更大的数据。这是我出现的sql

我想知道如何做WHERE (from_t.DESCRIPTION <= 10 byte);

之类的事情
MERGE INTO ADV_TEST_BACKFILL_COUNTRY to_t
  USING COUNTRY_CD from_t
  ON (to_t.COUNTRY_CD = from_t.DESCRIPTION)

  WHEN NOT MATCHED THEN INSERT (
    to_t.COUNTRY_CD,
    to_t.DESCRIPTION,
    to_t.CLOSED_IND,
    to_t.UPDATE_WHO,
    to_t.UPDATE_ON      
  )
  VALUES (
    from_t.DESCRIPTION,
    from_t.DESCRIPTION,
    from_t.CLOSED_IND,
    from_t.UPDATE_WHO,
    SYSDATE
  ) WHERE (from_t.DESCRIPTION <= 10 byte);

2 个答案:

答案 0 :(得分:0)

你想要lengthb()吗?

std::vector

答案 1 :(得分:0)

我不是100%清楚你想在这里实现什么......对我来说,你可能不想“跳过”包含较大数据的行而是将其截断...

无论如何,由于您要将字符串插入较短的字符串,因此您需要提取子字符串以确保它不会破坏较小的列。当然,你会试图“丢失”一些数据(DESCRIPTION的11+个字符)。

VALUES (
   SUBSTR(from_t.DESCRIPTION,0,10),
...