Inserindo várias linhas em uma coluna sqlite com script bash

3

Estou tentando inserir um valor no meu banco de dados sqlite que consiste em várias linhas e caracteres especiais.

Por exemplo:

{
"foo"="$BAR"
}

Eu tenho usado o comando sqlite3, mas não sei como fazer isso.

Também dentro do meu script bash eu tenho variáveis como $BAR que precisam ser analisadas.

Comando atualizado (com variáveis de amostras.)

API=2039470928570983
USERNAME=Admin
PASSWORD=PASSWORD
sqlite3 /home/xbmc/test.db "INSERT INTO DownloadClients VALUES (1,1,Sabnzbd,Sabnzbd,'{"host": "localhost", "port": 8085, "apiKey": "$API", "username": "$USERNAME", "password": "$PASSWORD", "tvCategory": "tv", "recentTvPriority": 1, "olderTvPriority": -100, "useSsl": false}', SabnzbdSettings)"

Agora obtenho Error: no such column: Sabnzbd . Tentei listar os nomes das colunas antes do operador VALUES, mas recebi o mesmo erro.

    
por JpaytonWPD 17.11.2014 / 17:34

2 respostas

0

tente com isso

sqlite3 test.db "INSERT INTO table VALUES (1,1,Sabnzbd,Sabnzbd,q'{"host": "localhost", "port": 8085, "apiKey": "$API", "username": "$USERNAME", "password": "$PASSWORD", "tvCategory": "tv", "recentTvPriority": 1, "olderTvPriority": -100, "useSsl": false}', SabnzbdSettings)"

Dessa forma, você obterá $ VARIABLES para renderizar dentro da consulta, se {} ainda gerar erros, será necessário descobrir uma maneira de escapar dessa string do json que está tentando inserir.

    
por 17.11.2014 / 19:24
0

A string inteira deve estar em Double Quotes. %código% Os valores devem estar em cotações únicas. "

sqlite3 /home/xbmc/test.db "INSERT INTO DownloadClients VALUES (NULL,'$USERNAME','Three','Four','{"host": "localhost", "port": 8085, "apiKey": "$API", "username": "$USERNAME", "password": "$PASSWORD", "tvCategory": "tv", "recentTvPriority": 1, "olderTvPriority": -100, "useSsl": false}', 5)"
    
por 17.11.2014 / 23:30

Tags