oracle Sqldeveloper定义RAW类型的变量

dz6r00yl  于 2022-11-03  发布在  Oracle
关注(0)|答案(2)|浏览(176)

我正在使用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.

我该怎么办?

pw136qt2

pw136qt21#

使用HEXTORAW()从双通道中选择HEXTORAW(“ABE 478 C1388 D9015875646 AD 16010 B13”);
请注意,utl_raw.cast_to_raw('ABE 478 C1388 D9015875646 AD 16010 B13')将给予'4142453437384331333838443930313538373536343641443136303130423133',这可能不是您想要的结果。

6jjcrrmo

6jjcrrmo2#

这是一个替代变量,因此在使用它时需要包括引号:

define carHashId = ABE478C1388D9015875646AD16010B13

select '&carHashId' from dual

define叙述句中的引号在SQL Developer中没有任何作用。您可以使用下列任何一个引号,并得到相同的结果:
第一个

相关问题