2013-03-25 2 views
0

Я создал конвейерную функцию в Oracle. Мне нужно использовать эту функцию, чтобы получить значение столбца в формате таблицы; за что я написал этот вопрос:Pipelined function in oracle

SELECT * 
    FROM TABLE (
       parse_comma_delimited(
             (SELECT SOURCE_COLUMNS 
              FROM BW_SUPERMERGE_RULES 
             WHERE RULE_NAME = 'SQL2CUB' 
            ), ',') 
            ) 
       ); 

Но я получаю следующее сообщение об ошибке:

ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"

Может ли один предложить мне, как это исправить?

+0

Что неясно о сообщении об ошибке? –

ответ

3

Я думаю, что ваша скобка не правильно подобраны, я редактировал код

SELECT * 
    FROM TABLE (parse_comma_delimited (SELECT SOURCE_COLUMNS 
            FROM BW_SUPERMERGE_RULES 
            WHERE RULE_NAME = 'SQL2CUB', ',')); 

В принципе такого рода ошибки являются для синтаксиса.

+0

Но я все еще получаю ошибку, например, «ORA-14551: невозможно выполнить операцию DML внутри запроса» – user2018408

+0

- это ** parse_comma_delimited ** функция, ваша? –

+0

Еще раз проверьте приведенный выше код, я его модифицировал и дайте мне знать по любым другим вопросам –

0

Я думаю, что это сработает; если ваша функция parse_comma_delimited верна.

 

    SELECT * 
       FROM TABLE (
    parse_comma_delimited(
    (SELECT SOURCE_COLUMNS 
     FROM BW_SUPERMERGE_RULES 
     WHERE RULE_NAME = 'SQL2CUB' 
    ), ',') 
    ); 

+1

Не могли бы вы попытаться избавиться от всех чуваков в своих ответах? Лично я нахожу это * очень * раздражающим. –