Как я могу заставить разветвляющиеся каналы работать в Perl над Windows?

Хорошо, я считаю, что следующие два запроса достигают желаемых результатов. Вы можете увидеть весь пример кода с помощью следующей SQL Fiddle .

Правила существования :

select A.*
     , B.Col3
     , B.Col4
     , B.Col5
  from TableA A
  JOIN TableB B
    on A.Col1 = B.Col1
   and A.Col2 = B.Col2
   and B.Col5 = 2
 where exists (select 1 from TableB C
                where C.col1 = B.col1 and C.col2 = B.col2
                  and c.col4 = 'I' AND C.col5 = 1)

Результаты :

| Col1 | Col2 | Col3 |   Col4 | Col5 |
|------|------|------|--------|------|
|  123 |   12 |   AB | (null) |    2 |
|  123 |   12 |   EF | (null) |    2 |

Правило исключения [ 1114]:

select A.*
     , B.Col3
     , B.Col4
     , B.Col5
  from TableA A
 CROSS JOIN TableB B
 where b.col5 = 2
   and exists (select 1 from TableB C
                where C.col1 = a.col1 and C.col2 = a.col2
                  and c.col4 = 'E' AND C.col5 = 1)
   and b.col3 not in (select col3 from TableB b
                       where b.col1 = a.col1 and b.col2 = a.col2 and b.col5 = 2)

Результаты :

| Col1 | Col2 | Col3 |   Col4 | Col5 |
|------|------|------|--------|------|
|  456 |   34 |   AB | (null) |    2 |
|  456 |   34 |   EF | (null) |    2 |
|  456 |   34 |   GH | (null) |    2 |
|  456 |   34 |   IJ | (null) |    2 |

5
задан Petros Koutsolampros 7 March 2014 в 23:44
поделиться

2 ответа

Я знаю, что это не прямой ответ на Ваш вопрос, но похоже на сценарии чего-то сверху По необходимости в Perl? Раз так Вы могли бы найти, что существующая библиотека делает то, что Вы уже хотите и сохраняете себя много головных болей или по крайней мере даете Вам некоторый пример кода для работы от.

Например:

Править: Теперь, когда я знаю то, что Вы делаете, я предполагаю, что Вы пытаетесь портировать p42svn на Windows или скорее сделать его совместимым с Windows, по крайней мере. Посмотрите этот поток для обсуждения этой точной проблемы. (Непротестированная) рекомендация состоит в том, чтобы попробовать примеры кода, перечисленные по http://perldoc.perl.org/perlfork.html под "Разветвляющимся открытым каналом () еще не реализованный" для явного создания канала вместо этого.

5
ответ дан 14 December 2019 в 13:48
поделиться

Это не собирается работать как есть. Необходимо будет найти, что другой метод выполняет то, что он делает. Не похоже, что существует то, что, записывая потребность в канале ветвления, но трудно сказать, так как я не знаю то, что p4, и много Вашего кода теряется интерпретации угловой скобки.

1
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: