2015-11-19 4 views
1

Недавно мы перевели наши данные на новый сервер, однако новый использует MariaDB.Запрос скрипта Google Apps для MariaDB

Мы делаем много запросов и вычислений в Google Apps Script для работы с таблицами. Поскольку сервер переключить наши скрипты возвращают следующее сообщение об ошибке:

Unknown system variable 'OPTION' (line 21, file "")

Линия 21 относится к запросу внутри следующего сценария:

function mysql_invoice() { 

// Replace the variables in this block with real values. 
var address = 'xxx'; 
var user = 'xxx'; 
var userPwd = 'xxx'; 
var db = 'xxx'; 

var dbUrl = 'jdbc:mysql://' + address + '/' + db; 

// Read up to 100000 rows of data from the table and log them. 

    var conn = Jdbc.getConnection(dbUrl, user, userPwd); 
     var stmt = conn.createStatement(); 


    // Call SO DATA 
     stmt.setMaxRows(10000); 
     var start = new Date(); 

     var rs = stmt.executeQuery("select * from sales_flat_invoice"); 

Любые идеи?

+0

Информация о себе отсутствует в вашем материале, чтобы воспроизвести проблему. Было бы полезно использовать [mcve]. – Mogsdad

+0

Чтобы воспроизвести проблему, вам необходимо создать скрипт google, который пытается получить доступ к удаленному серверу базы данных, на котором работает MariaDB, и вы должны использовать JDBC: драйверы mysql для доступа к ним и запускать на нем запросы. Вся информация предоставляется в вопросе, как я вижу. Что еще вам нужно? Можете ли вы быть более конкретным? – CntkCtn

+0

Если вы используете MariaDB 10 со старой версией драйвера jdbc, это скорее даст вам такие ошибки. MySql 5.5 сопоставим с Maria DB 5.5 и MySql 5.6 сравним с MariaDB 10. Разница между MySql 5.5 и 5.6 является поддержкой OPTION. 5.6 больше не поддерживает это. Итак, если вы используете MariaDB 10, у вас нет поддержки системной переменной OPTION, которая используется в драйвере jdbc, скорее всего, подготовит и запустит запрос. Мое убеждение в том, что вам нужно использовать обновленную версию jdbc, если это возможно с помощью скриптов google. – CntkCtn

ответ

0

Я считаю, что вы использовали setMaxRows - проблема.

Если вы изменили способ установки лимита, он будет работать.

// Call SO DATA 
    //  stmt.setMaxRows(10000); 
    var start = new Date(); 

    var rs = stmt.executeQuery("select * from sales_flat_invoice limit 10000"); 

Это должно решить вашу проблему. Это определенно происходит из пропусков версии вашего MariaDB и версии разъема jdbc.

Cheers