SQLite插入问题仅限于Bash脚本

lnlaulya  于 2023-04-21  发布在  SQLite
关注(0)|答案(1)|浏览(144)

它为sqlite INSERT INTO HistoryTrade(Symbol,ValMedPerc,HowZero,ValRepeat,HowTrade,OpenPriceTrade,OkorNot,GainPercent,DataOpen,DataClose)VALUES('LUNAUSDT','13.89','1.0','2.00','20','1.4299','0','1','0','0')生成此插入;如果我复制这个,并使用联合国数据库浏览器和执行它,它的工作,但如果运行脚本返回此错误

zione Row riuscito.
de made INSERT INTO HistoryTrade (Symbol,ValMedPerc,HowZero,ValRepeat,HowTrade,OpenPriceTrade,OkorNot,GainPercent,DataOpen,DataClose) VALUES ('LUNAUSDT','13.89','1.0','2.00','20','1.4299','0','1','0','0');
Error: in prepare, no such table: HistoryTrade (1)
Errore durante l'inserimento nel database.
_Sqlite_Insert_Row(){
    
    local database_name="$1"
    local NameTable="$2"
    local NameColumn="$3"
    local NameValue="$4"

    # Verifica se la stringa di input contiene il carattere "|"
    if echo "${NameColumn}" | grep -q "|"; then

    # Sostituisci il carattere "|" con la virgola ","
    NameColumnOK="${NameColumn//|/,}"
    NameValueOK="${NameValue//|/','}"
    # Sostituisci le virgole vuote tra virgole con uno zero
    NameValueOK="${NameValueOK//,,/,0,}"
    if [[ "${NameValueOK}" == *, ]]; then
            NameValueOK="${NameValueOK}0"
    fi
        
    # Aggiungi virgolette singole attorno a ciascun valore di stringa
    NameValueOK="'$(echo "${NameValueOK}" | sed "s/,/','/g")'"

    # Creo la query SQL con i valori dell'array
      
      sql="INSERT INTO ${NameTable} (${NameColumnOK}) VALUES (${NameValueOK});"
           echo "de made ${sql}"
           
        if sqlite3 "${database_name}" "${sql}"; then
            echo "Inserimento riuscito."
            return 0
        else
            echo "Errore durante l'inserimento nel database."
            return 1
        fi
      
    else
      echo "La stringa di input non contiene il carattere '|'."
      output_string="${input_string}"
    fi
}

# Creazione della stringa con parole senza virgolette e spazi
my_string="Symbol|ValMedPerc|HowZero|ValRepeat|HowTrade|OpenPriceTrade|OkorNot|GainPercent|DataOpen|DataClose"
my_array_val="LUNAUSDT|13.89|1.0|2.00|20|1.4299|0|1||"
_Sqlite_Insert_Row "BinCexExchangeInfo" "HistoryTrade" "$my_string" "$my_array_val"

我也尝试将${NameTable}更改为$NameTable或'${NameTable}'或“${NameTable}”,但没有任何人在此链接我的数据库https://mega.nz/file/r9Mj2RqK#9oZ8kY0NIjVcxfn2-d5vZey-oLdLYtkJU2TUR8PwEi4

5us2dqdw

5us2dqdw1#

只需在函数调用中添加文件(数据库)扩展名

_Sqlite_Insert_Row "BinCexExchangeInfo.db" "HistoryTrade" "$my_string" "$my_array_val"

相关问题