python
  • string
  • formatting
  • 2012-11-14 186 views 0 likes 
    0

    我想綁定在SQL參數:Python字符串格式化出錯

    sql = "SELECT COLUMN_NAME,DATA_TYPE FROM USER_TAB_COLS WHERE TABLE_NAME=UPPER(:TABLENAME)" 
    print 'TABLENAME=',TABLENAME 
    sqlqry = sql %(TABLENAME) 
    

    ,但得到的字符串格式化錯誤:

    TypeError: not all arguments converted during string formatting 
    

    可能是什麼問題呢?

    +3

    什麼辦法?我在您的字符串中看不到任何有效的格式說明符。 –

    +1

    如果您使用'sqlite3',我建議使用預準備語句。 – Whymarrh

    +0

    我想如果你想在你的替代使用關鍵字,更換'的%將替代TABLENAME值 – user1050619

    回答

    1

    你缺少你的字串的佔位符。

    你想用字符串sql替換:TABLENAME%s我懷疑。

    0

    你真的應該張貼更多的代碼爲這是完全清楚,但它看起來像字符串「SQL」不包含任何%-codes被substituded。你試圖用一個值代替,但並不是所有的都被使用(換句話說,沒有任何東西被替代)。您應該使用%s而不是:TABLENAME。

    相關問題