簡體   English   中英

pymysql 讀取 \\n 個字符。 如何停止在 .sql 文件中運行 \\n 個字符?

[英]pymysql reading \n characters. how can I stop \n characters being run in an .sql file?

錯誤:

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use near 'CREATE 
PROCEDURE 
`sp_listProducts` (\n    SELECT p.product_id\n             , p.pr' at line 3")

查詢語句:

CREATE PROCEDURE `sp_listProducts` ()
    SELECT p.product_id
         , p.product
         , u.unit
         , p.unit_quantity
         , p.unit_weight
         , p.pr_number
         , pj.project_code
         , sec.sector
         , p.supplier
         , p.packaging_info
         , loc.location                        AS project_location
         , p.comments
         , loc.location_id
         , p.product_price
         , p.price_currency
         , p.gik_number
         , p.gik_stock_id
         , p.gik_supplier_id                   AS supplier_id
         , gik.gik_supplier
         , IF(tr.in_stock > 0, tr.in_stock, 0) as in_stock
FROM tbl_product AS p
             # get all FK values for display
             LEFT JOIN tbl_unit AS u ON p.unit_id = u.unit_id
             LEFT JOIN tbl_project AS pj ON p.project_id = pj.project_id
             LEFT JOIN tbl_location AS loc ON pj.location_id = loc.location_id
             lEFT JOIN tbl_sector AS sec ON p.sector_id = sec.sector_id
             LEFT JOIN tbl_gik_supplier AS gik ON p.gik_supplier_id = gik.gik_supplier_id
             LEFT JOIN (
    SELECT product_id
             , SUM(IF(trans_type IN ('in', 'count-gain', 'wb-gain'), trans_quantity, 0))                                                as inflow
             , SUM(IF(trans_type IN ('out', 'count-loss', 'wb-loss'), trans_quantity, 0))                                               as outflow
             , SUM(IF(trans_type IN ('in', 'count-gain', 'wb-gain'), trans_quantity, 0)) - SUM(IF(trans_type IN ('out', 'count-loss', 'wb-loss'), trans_quantity, 0)) as in_stock
    FROM tbl_transaction
    WHERE deleted=0
    GROUP By product_id
) tr
                                 ON p.product_id = tr.product_id
ORDER BY p.product_id ASC;

我嘗試將編碼更改為 UTF-8 無濟於事。 我還在 vscode 中設置了項目 settins.json "files.encoding": "utf8"; 沒有用。 如何擺脫正在讀取的“\\n”字符?

\\n不是反派。 根據錯誤消息,它要么是CREATE令牌,要么是它之前的任何東西。 我希望它是DELIMITER語句中的語法錯誤。 一個常見的原因:

DELIMITER//   -- bad; need space after "DELIMITER" and the delimiter

檢查pymysql上的文檔——也許沒有使用DELIMITER ,它是別的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM