Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何使用SELECT结果记录作为解码参数?_Oracle_Select_Plsql_Decode_Oracle8i - Fatal编程技术网

Oracle 如何使用SELECT结果记录作为解码参数?

Oracle 如何使用SELECT结果记录作为解码参数?,oracle,select,plsql,decode,oracle8i,Oracle,Select,Plsql,Decode,Oracle8i,当此SELECT仅返回一条带有准备字符串的记录时,是否可以使用SELECT result作为解码参数? 例如: 选择replace(replace(序列化的_数据)…)作为表的结果 在一行中返回以下结果: 0,'label0',1,'label1',2,'label2' 但当我把它解码时,它被解释为一个参数。 是否有可能将此结果“字符串”转换为“纯”sql代码?;) 感谢您的帮助。根据oracle的版本列出agg或wm concat 根据oracle的版本列出agg或wm concat 您可以使

当此SELECT仅返回一条带有准备字符串的记录时,是否可以使用SELECT result作为解码参数? 例如:

选择replace(replace(序列化的_数据)…)作为表的结果

在一行中返回以下结果:

0,'label0',1,'label1',2,'label2'

但当我把它解码时,它被解释为一个参数。 是否有可能将此结果“字符串”转换为“纯”sql代码?;)


感谢您的帮助。

根据oracle的版本列出agg或wm concat


根据oracle的版本列出agg或wm concat


您可以使用动态SQL:

declare
  DECTXT   varchar2(4000);
begin
  select replace(replace(serialized_data)..)..) as result into dectxt from table;
  execute immediate 'select decode(col1,' || DECTXT || ') from tab1';
end;

这只是一个简单的示例,没有显示任何输出等。

您可以使用动态SQL:

declare
  DECTXT   varchar2(4000);
begin
  select replace(replace(serialized_data)..)..) as result into dectxt from table;
  execute immediate 'select decode(col1,' || DECTXT || ') from tab1';
end;

这只是一个简单的示例,没有显示任何输出等。

您可以通过使用
instr
substr
来复制
解码。下面的一个例子(可能会被整理得很干净,但效果很好):


不过,您确实需要在文本末尾加一个分号(VALSEP),以确保您可以找到最后一个值(尽管如果我进一步研究,可以解决这个问题)。

您可以通过使用
instr
substr
复制
解码。下面的一个例子(可能会被整理得很干净,但效果很好):


不过,您确实需要在文本末尾加一个分号(VALSEP),以确保可以找到最后一个值(尽管如果我进一步研究,可以解决这个问题)。

您试图实现的解码语句是什么?我正在做一个报告,但具有乘法选择的字段只返回一个选择的ID。这些ID的翻译如下保存:“0=黑色;1=绿色;2=黄色“(在一列中)您试图实现的解码语句是什么?我正在做一个报告,但是具有乘法选择的字段只返回一个选择的ID。这些ID的翻译如下保存:“0=黑色;1=绿色;2=黄色“(在一列中)谢谢。不幸的是,我有8i,所以LISTAGG不可用。我不知道如何使用wm_concat。没有明确的文档可供分析使用,如何将此结果字符串转换为数组/表?谢谢。不幸的是,我有8i,所以LISTAGG不可用。我不知道如何使用wm_concat。没有明确的文档可供分析使用,如何将此结果字符串转换为数组/表?@Mack80-您可以调用存储过程,因为它可以放在存储过程中。@Mack80-您可以调用存储过程,因为它可以放在存储过程中。