Click here to Skip to main content
15,887,135 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi why my code tell me Error: in prepare, no such table: BinanceCex

i have the table i am sure maybe i did do some error in script bash ?
Bash
#!/bin/bash
set -x


#RunProgram() {
    # Aggiungi qui la logica per eseguire il programma
#}

# Funzione per inserire dati JSON nella tabella SQLite
insert_dataBinance() {
       sqlite3 ConfigDb.db "INSERT INTO BinanceCex (id_symbol, symbol, base, quote, info_symbol, info_status, info_baseAsset, info_baseAssetPrecision, info_quoteAsset, info_quotePrecision,
        info_quoteAssetPrecision, info_baseCommissionPrecision, info_quoteCommissionPrecision, info_orderType_0, info_orderType_1,
        info_orderType_2, info_orderType_3, info_orderType_4, info_icebergAllowed, info_ocoAllowed, info_quoteOrderQtyMarketAllowed,
        info_allowTrailingStop, info_cancelReplaceAllowed, info_isSpotTradingAllowed, info_isMarginTradingAllowed, info_filters_0_filterType,
        info_filters_0_minPrice, info_filters_0_maxPrice, info_filters_0_tickSize, info_filters_1_filterType, info_filters_1_minQty,
        info_filters_1_maxQty, info_filters_1_stepSize, info_filters_2_filterType, info_filters_2_limit, info_filters_3_filterType,
        info_filters_3_maxQty, info_filters_3_stepSize, info_filters_4_filterType, info_filters_4_minTrailingAboveDelta,
        info_filters_4_maxTrailingAboveDelta, info_filters_4_minTrailingBelowDelta, info_filters_4_maxTrailingBelowDelta,
        info_filters_5_filterType, info_filters_5_bidMultiplierUp, info_filters_5_bidMultiplierDown, info_filters_5_askMultiplierUp,
        info_filters_5_askMultiplierDown, info_filters_5_avgPriceMins, info_filters_6_filterType, info_filters_6_minNotional,
        info_filters_6_applyMinToMarket, info_filters_6_maxNotional, info_filters_6_applyMaxToMarket, info_filters_6_avgPriceMins,
        info_filters_7_filterType, info_filters_7_maxNumOrders, info_filters_8_filterType, info_filters_8_maxNumAlgoOrders,
        info_permissions_0, info_permissions_1, info_filters_3_minQty, info_permissions_2, info_permissions_3, info_permissions_4,
        info_permissions_5, info_permissions_6, info_permissions_7, info_permissions_8, info_permissions_9, info_permissions_10,
        info_permissions_11, info_permissions_12, info_permissions_13, info_permissions_14, info_permissions_15, info_permissions_16,
        info_permissions_17, info_permissions_18, info_permissions_19, info_permissions_20, info_permissions_21, info_permissions_22,
        info_defaultSelfTradePreventionMode, info_allowedSelfTradePreveMode_0, info_allowedSelfTradePreveMode_1,
        info_allowedSelfTradePreveMode_2, limits_amount_min, limits_amount_max, limits_price_min, limits_price_max, limits_cost,
        precision_amount, precision_price)
        VALUES ('$1', '$2', '$3', '$4', '$5', '$6', '$7', '$8', '$9', '$10', '$11',
            '$12', '$13', '$14', '$15', '$16', '$17', '$18', '$19', '$20', '$21',
            '$22', '$23', '$24', '$25', '$26', '$27', '$28', '$29', '$30', '$31',
            '$32', '$33', '$34', '$35', '$36', '$37', '$38', '$39', '$40', '$41', 
            '$42', '$43', '$44', '$45', '$46', '$47', '$48', '$49', '$50', '$51',
            '$52', '$53', '$54', '$55', '$56', '$57', '$58', '$59', '$60', '$61', 
            '$62', '$63', '$64', '$65', '$66', '$67', '$68', '$69', '$70', '$71',
            '$72', '$73', '$74', '$75', '$76', '$77', '$78', '$79', '$80', '$81', 
            '$83', '$84', '$85', '$86', '$87', '$88', '$89', '$90', '$91', '$92', '$93');"
}

Extract() {
    
    # -- BINANCE CEX -------------------------------------------------------------------
    BINANCE_Markets="http://localhost:3000/exchange/binance/markets"
    COINBASE_Markets="http://localhost:3000/exchange/coinbase/markets"
    KRAKEN_Markets="http://localhost:3000/exchange/kraken/markets"
    BYBIT_Markets="http://localhost:3000/exchange/bybit/markets"
	
    json_dataBINCEX=$(curl -X GET "$BINANCE_Markets" -H "accept: application/json")
    # Estrai i dati 
    contatore=0
    while true; do
		id_symbol=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].id")
		if [ "$id_symbol" == "null" ]; then
			echo "La variabile 'id_symbol' è nulla. Uscita dal ciclo."
			break
		fi
		symbol=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].symbol")
		base=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].base")
		quote=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].quote")
		info_symbol=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.symbol")
		info_status=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.status")
		info_baseAsset=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.baseAsset")
		info_baseAssetPrecision=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.baseAssetPrecision")
		info_quoteAsset=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.quoteAsset")
		info_quotePrecision=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.quotePrecision")
		info_quoteAssetPrecision=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.quoteAssetPrecision")
		info_baseCommissionPrecision=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.baseCommissionPrecision")
		info_quoteCommissionPrecision=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.quoteCommissionPrecision")
		
		info_orderTypes0=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.orderTypes[0]")
		info_orderTypes1=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.orderTypes[1]")
		info_orderTypes2=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.orderTypes[2]")
		info_orderTypes3=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.orderTypes[3]")
		info_orderTypes4=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.orderTypes[4]")
		info_icebergAllowed=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.icebergAllowed")
		info_ocoAllowed=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.ocoAllowed")
		info_quoteOrderQtyMarketAllowed=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.quoteOrderQtyMarketAllowed")
		info_allowTrailingStop=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.allowTrailingStop")
		info_cancelReplaceAllowed=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.cancelReplaceAllowed")
		info_isSpotTradingAllowed=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.isSpotTradingAllowed")
		info_isMarginTradingAllowed=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.isMarginTradingAllowed")
		info_filters0filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters0minPrice=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].minPrice")
		info_filters0maxPrice=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxPrice")
		info_filters0tickSize=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].tickSize")
		info_filters1filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters1minQty=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].minQty")
		info_filters1maxQty=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxQty")
		info_filters1stepSize=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].stepSize")
		info_filters2filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters2limit=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].limit")
		info_filters3filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters3minQty=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].minQty")
		info_filters3maxQty=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxQty")
		info_filters3stepSize=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].stepSize")
		info_filters4filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters4minTrailingAboveDelta=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].minTrailingAboveDelta")
		info_filters4maxTrailingAboveDelta=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxTrailingAboveDelta")
		info_filters4minTrailingBelowDelta=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].minTrailingBelowDelta")
		info_filters4maxTrailingBelowDelta=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxTrailingBelowDelta")
		info_filters5filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters5bidMultiplierUp=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].bidMultiplierUp")
		info_filters5bidMultiplierDown=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].bidMultiplierDown")
		info_filters5askMultiplierUp=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].askMultiplierUp")
		info_filters5askMultiplierDown=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].askMultiplierDown")
		info_filters5avgPriceMins=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].avgPriceMins")
		info_filters6filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters6minNotional=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].minNotional")
		info_filters6applyMinToMarket=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].applyMinToMarket")
		info_filters6maxNotional=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxNotional")
		info_filters6applyMaxToMarket=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].applyMaxToMarket")
		info_filters6avgPriceMins=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].avgPriceMins")
		info_filters7filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters7maxNumOrders=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxNumOrders")
		info_filters8filtertype=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].filterType")
		info_filters8maxNumAlgoOrders=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.filters[0].maxNumAlgoOrders")
		info_permissions0=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[0]")
		info_permissions1=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[1]")
		info_permissions2=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[2]")
		info_permissions3=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[3]")
		info_permissions4=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[4]")
		info_permissions5=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[5]")
		info_permissions6=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[6]")
		info_permissions7=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[7]")
		info_permissions8=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[8]")
		info_permissions9=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[9]")
		info_permissions10=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[10]")
		info_permissions11=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[11]")
		info_permissions12=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[12]")
		info_permissions13=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[13]")
		info_permissions14=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[14]")
		info_permissions15=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[15]")
		info_permissions16=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[16]")
		info_permissions17=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[17]")
		info_permissions18=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[18]")
		info_permissions19=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[19]")
		info_permissions20=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[20]")
		info_permissions21=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[21]")
		info_permissions22=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.permissions[22]")
		info_defaultSelfTradePreventionMode=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.defaultSelfTradePreventionMode")
		info_allowedSelfTradePreventionModes0=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.allowedSelfTradePreventionModes[0]")
		info_allowedSelfTradePreventionModes1=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.allowedSelfTradePreventionModes[1]")
		info_allowedSelfTradePreventionModes2=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].info.allowedSelfTradePreventionModes[2]")
		limits_amountMin=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.amount.min")
		limits_amountMax=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.amount.max")
		limits_priceMin=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.price.min")
		limits_priceMax=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.price.max")
		limits_cost=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.cost")
		limits_precisionAmount=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.precision.amount")
		limits_precisionPrice=$(echo "$json_dataBINCEX" | jq -r ".[$contatore].limits.precision.price")

		# Chiamata alla funzione per inserire i dati
insert_dataBinance "$id_symbol" "$symbol" "$base" "$quote" "$info_symbol" "$info_status" "$info_baseAsset" "$info_baseAssetPrecision" "$info_quoteAsset" \
					"$info_quotePrecision" "$info_quoteAssetPrecision" "info_baseCommissionPrecision" "info_quoteCommissionPrecision" "info_orderTypes0" "info_orderTypes1" "info_orderTypes2" \
					"info_orderTypes3" "info_orderTypes4" "info_icebergAllowed" "info_ocoAllowed" "info_quoteOrderQtyMarketAllowed" "info_allowTrailingStop" "info_cancelReplaceAllowed" \
					"info_isSpotTradingAllowed" "info_isMarginTradingAllowed" "info_filters0filtertype" "info_filters0minPrice" "info_filters0maxPrice" "info_filters0tickSize" \
					"info_filters1filtertype" "info_filters1minQty" "info_filters1maxQty" "info_filters1stepSize" "info_filters2filtertype" "info_filters2limit" "info_filters3filtertype" \
					"info_filters3minQty" "info_filters3maxQty" "info_filters3stepSize" "info_filters4filtertype" "info_filters4minTrailingAboveDelta" "info_filters4maxTrailingAboveDelta" \
					"info_filters4minTrailingBelowDelta" "info_filters4maxTrailingBelowDelta" "info_filters5filtertype" "info_filters5bidMultiplierUp" "info_filters5bidMultiplierDown" \
					"info_filters5askMultiplierUp" "info_filters5askMultiplierDown" "info_filters5avgPriceMins" "info_filters6filtertype" "info_filters6minNotional" "info_filters6applyMinToMarket" \
					"info_filters6maxNotional" "info_filters6applyMaxToMarket" "info_filters6avgPriceMins" "info_filters7filtertype" "info_filters7maxNumOrders" "info_filters8filtertype" \
					"info_filters8maxNumAlgoOrders" "info_permissions0" "info_permissions1" "info_permissions2" "info_permissions3" "info_permissions4" "info_permissions5" "info_permissions6" \
					"info_permissions7" "info_permissions8" "info_permissions9" "info_permissions10" "info_permissions11" "info_permissions12" "info_permissions13" "info_permissions14" \
					"info_permissions15" "info_permissions16" "info_permissions17" "info_permissions18" "info_permissions19" "info_permissions20" "info_permissions21" "info_permissions22" \
					"info_defaultSelfTradePreventionMode" "info_allowedSelfTradePreventionModes0" "info_allowedSelfTradePreventionModes1" "info_allowedSelfTradePreventionModes2" \
					"limits_amountMin" "limits_amountMax" "limits_priceMin" "limits_priceMax" "limits_cost" "limits_precisionAmount" "limits_precisionPrice" 

		echo "$id_symbol"

		 ((contatore++))
		
	done
  
}




RecoveDataExchange() {
    # Recupera la data dalla tabella StampExchange in SQLite
    data=$(sqlite3 ConfigDB.db "SELECT data FROM StampExchange WHERE id = 1;")

    if [ -z "$data" ]; then
        # Se la data è vuota, inserisci la data di oggi e lancia la funzione Extract
        oggi=$(date +"%Y-%m-%d")
        sqlite3 ConfigDB.db "INSERT INTO StampExchange (id, data) VALUES (1, '$oggi');"
        Extract 
    else
        # Se c'è una data, confrontala con la data di oggi
        oggi=$(date +"%Y-%m-%d")
        if [ "$data" == "$oggi" ]; then
            # Se sono uguali, lancia RunProgram
            #RunProgram
            Extract
        else
            # Se sono diversi, cancella la vecchia data, inserisci quella nuova e lancia Extract
            sqlite3 ConfigDB.db "DELETE FROM StampExchange WHERE id = 1;"
            sqlite3 ConfigDB.db "INSERT INTO StampExchange (id, data) VALUES (1, '$oggi');"
            Extract
        fi
    fi
}
set +x
# Funzione per controllare se una porta è aperta
check_port() {
    host="$1"
    port="$2"
    
    # Utilizza netcat per verificare se la porta è aperta
    nc -z "$host" "$port"
    return $?
}

# Controlla se la porta 3000 è aperta
check_port "127.0.0.1" 3000

if [ $? -eq 0 ]; then
    echo "La porta 3000 è già aperta."
    RecoveDataExchange
else
    # Se la porta non è aperta, esegui il comando Docker
    echo "La porta 3000 non è aperta. Tentativo di avviare il container Docker..."
    docker run -p 3000:3000 docker.io/ccxtrest/ccxt-rest

    # Controlla di nuovo se la porta è aperta dopo aver avviato il container Docker
    check_port "127.0.0.1" 3000

    if [ $? -eq 0 ]; then
        echo "Il container Docker è stato avviato con successo."
    else
        echo "Errore: Impossibile avviare il container Docker o aprire la porta 3000."
        exit 1
    fi
fi

# Continua con il resto dello script...
# Puoi inserire qui il codice aggiuntivo che desideri eseguire


What I have tried:

i try to inserto also with EOF

here you can find my db https://mega.nz/file/zk82ABqa#Lqaoq5_xWVe_2fUtz_oaE49rRADOrMkXzSIy7zwcmuM[^] 
Posted
Updated 12-Feb-24 21:34pm
v2
Comments
Richard MacCutchan 9-Feb-24 2:48am    
Where is the actual error message that you see?
Richard MacCutchan 13-Feb-24 4:41am    
You have updated your question, but you have still not shown the actual output when you run the script.

1 solution

Are you sure you have the BinanceCex table in the SQLite file ConfigDB.db?
Check your db file
Terminal
$[k5054@localhost]$  sqlite3 ConfigDB.db .schema
CREATE TABLE BinanceCex( id int,  ... );
CREATE TABLE StampExchange( ... );
$[k5054@localhost]$ 

Are you sure that the Database file is ConfigDB.db, and not Config.db or Config.db? Remember, case matters on linux, so configdb.db, ConfigDB.db and ConfigDB.DB are all different files.

Suggestion: use a variable to hold the name of your database, and table names
Bash
database="ConfigDB.db"
b_cex="BinanceCex"
stamp_ex="StampExchange"

sqlite3 $database "Insert into $b_cex values ( ... )"
Now, if you discover the table should be called BinanceExchange, rather than BinanceCex, you only have to change your code in one location.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900