Запрос оболочки Impala -q с двойными кавычками в строке

Я создаю текстовый файл, который используется plink для использования оболочки impala и запуска оператора вставки с использованием -q. В настоящее время я использую фиктивные данные из Википедии, чтобы убедиться, что в них нет ошибок, прежде чем использовать их в гневе.

Это работает нормально почти во всех случаях, кроме следующих (я изменил некоторые биты, но результат тот же):

impala-shell -c -k -q "INSERT INTO TABLE imaginarydatabasename.T_Test
VALUES
('Bob','Monkhouse','1928-06-01',2003,'An expert on the history of silent cinema and a film collector, Monkhouse presented Mad Movies in 1966. He wrote, produced, financed and syndicated the show worldwide. The show featured clips from comic silent films, many from his own private collection, some of which he had helped to recover and restore. This film collection was the cause of a court case at the Old Bailey in 1979. Having loaned Terry Wogan\'s son a film, Monkhouse was charged with attempting to defraud film distributors of royalties, but after two years the judge decided that there was no case to answer.[8] Many of the films in his collection were seized and not returned to Monkhouse.[9] In 2008, the British Film Institute was contacted by Monkhouse\'s daughter, Abigail, who asked if they would like to view the collection and provide some advice as to the best way of preserving it. Amongst the discoveries were many radio and TV shows long thought lost. Dick Fiddy, the archivist, said \"It\'s a huge, unwieldy collection which deals with a number of areas. It\'s not just film and TV. Initially, we found half a dozen TV shows that we knew to be missing.\" Amongst those shows rediscovered were many that feature Monkhouse himself, including The Flip Side, a 1966 play in which he starred as a television DJ with his own late night show, and the 1957/58 series of his comedy My Pal Bob including an episode in which he is suspected of an extramarital affair.[10] The archive consisted of 36,000 videotapes, going back to when Monkhouse first bought a home video recorder in 1966. His film archive began in the late 1950s. The entire Monkhouse film and television archive is now held by Kaleidoscope, including all the material previously held by the NFTVA. It was catalogued and restored to digital formats for a major event at Bafta on 24 October 2009. Chris Perry, of Kaleidoscope and Kaleidoscope Publishing, said: \"We are painstakingly transferring the important contents of the video tapes and restoring radio shows. There are many incredible finds, and the event [is] an exciting time for all concerned.\" In his final years, Monkhouse hosted a show on BBC Radio 2 called The Monkhouse Archive, in which he provided humorous links to clips of comedy acts spanning the previous 50 years.',1,2.5,'2016-06-21 14:41:25');" -i impala-server.com;

Если я скопирую часть во внешние двойные кавычки (что запускается с помощью q), вставлю ее в оттенок и выполню, у меня нет проблем.

Я считаю, что происходит то, что двойные кавычки в 5-м столбце сообщают части оболочки -q, что текст запроса завершен.

Как мне сказать оболочке, что двойные кавычки не заканчиваются?

2 ответа

Решение

Это было \

Вы должны сделать это не один, не два, а три раза следующим образом:

impala-shell -c -k -q "INSERT INTO TABLE database.table
VALUES
('Bob','Monkhouse','1928-06-01',2003,'see if I can get \\\ to work...',1,2.5,'2016-06-21 14:41:25');" -i impala-server;

Один из способов проверить это - выполнить вместо оператора вставки оператор прямого выбора, чтобы увидеть, способна ли оболочка impala выполнить запрос. Смотрите пример ниже из вашего кода. Я смог выполнить его без каких-либо проблем, но затем, если бы я избавился от любого из escape-символов, он бы вывел ошибку, поэтому я не думаю, что двойные кавычки вызывают проблему.

impala-shell -i impala-server.com -c -k -q "select 'Bob','Monkhouse','1928-06-01',2003,'An expert on the history of silent cinema and a film collector, Monkhouse presented Mad Movies in 1966. He wrote, produced, financed and syndicated the show worldwide. The show featured clips from comic silent films, many from his own private collection, some of which he had helped to recover and restore. This film collection was the cause of a court case at the Old Bailey in 1979. Having loaned Terry Wogan\'s son a film, Monkhouse was charged with attempting to defraud film distributors of royalties, but after two years the judge decided that there was no case to answer.[8] Many of the films in his collection were seized and not returned to Monkhouse.[9] In 2008, the British Film Institute was contacted by Monkhouse\'s daughter, Abigail, who asked if they would like to view the collection and provide some advice as to the best way of preserving it. Amongst the discoveries were many radio and TV shows long thought lost. Dick Fiddy, the archivist, said \"It\'s a huge, unwieldy collection which deals with a number of areas. It\'s not just film and TV. Initially, we found half a dozen TV shows that we knew to be missing.\" Amongst those shows rediscovered were many that feature Monkhouse himself, including The Flip Side, a 1966 play in which he starred as a television DJ with his own late night show, and the 1957/58 series of his comedy My Pal Bob including an episode in which he is suspected of an extramarital affair.[10] The archive consisted of 36,000 videotapes, going back to when Monkhouse first bought a home video recorder in 1966. His film archive began in the late 1950s. The entire Monkhouse film and television archive is now held by Kaleidoscope, including all the material previously held by the NFTVA. It was catalogued and restored to digital formats for a major event at Bafta on 24 October 2009. Chris Perry, of Kaleidoscope and Kaleidoscope Publishing, said: \"We are painstakingly transferring the important contents of the video tapes and restoring radio shows. There are many incredible finds, and the event [is] an exciting time for all concerned.\" In his final years, Monkhouse hosted a show on BBC Radio 2 called The Monkhouse Archive, in which he provided humorous links to clips of comedy acts spanning the previous 50 years.',1,2.5,'2016-06-21 14:41:25'"
Другие вопросы по тегам