我正在使用SQL开发人员(Oracle的SQL开发人员),并且有一个包含raw
类型列的表。此列中的示例值为:
ABE478C1388D9015875646AD16010B13
D78ABC797BC898AA9710BC090913B15C
我想在SELECT
语句中使用这些值作为变量,这些值是我事先定义的:
define carHashId = 'ABE478C1388D9015875646AD16010B13'
当我在WHERE
子句中使用这个变量时:WHERE hid = &&carHashId
我总是得到以下错误:
* Cause: An identifier with more than 128 bytes was specified,
or a password identifier longer than 30 bytes was specified.
* Action: Specify at most 128 bytes for identifiers,
and at most 30 bytes for password identifiers.
我该怎么办?
2条答案
按热度按时间pw136qt21#
使用HEXTORAW()从双通道中选择HEXTORAW(“ABE 478 C1388 D9015875646 AD 16010 B13”);
请注意,utl_raw.cast_to_raw('ABE 478 C1388 D9015875646 AD 16010 B13')将给予'4142453437384331333838443930313538373536343641443136303130423133',这可能不是您想要的结果。
6jjcrrmo2#
这是一个替代变量,因此在使用它时需要包括引号:
define
叙述句中的引号在SQL Developer中没有任何作用。您可以使用下列任何一个引号,并得到相同的结果:第一个