Использование параметров данных для представления в Sybase - PullRequest
0 голосов
/ 15 февраля 2020

Цель

Мне нужно каждый месяц добавлять новые данные в таблицу в моей личной схеме. Мой план состоял в том, чтобы каждый месяц запускать некоторый код SQL из R, который подключается к базе данных Sybase и получает последние данные за 24 месяца.

Проблема

В моих данных у меня есть поле, которое является VARCHAR, и я пытался выполнить приведение на сегодняшний день, но это, кажется, известная проблема с соединениями Sybase IQ v16.0 и odb c.

enter image description here

Что я пробовал

Мне предложили обходное решение, чтобы я создал представление, которое содержит приведение и иметь это представление перетащить данные в мою таблицу. Как новичок я пытался создать представление с параметрами для начальной и конечной даты, но я исключил ошибку. Затем было предложено создать хранимую процедуру для запуска представления с параметрами, но когда я запустил его таким образом, мой запрос выполнялся в течение> 3 часов, поэтому я завершил процесс. Оригинальный SQL занял около 10 минут, чтобы запустить и упасть на мой стол.

Мои коды

CREATE VIEW mySchema.claims_view AS
SELECT *
INTO mySchema.claims_table
FROM LOTS_OF_TABLE_JOINS
WHERE DATES BETWEEN @StartDate AND @EndDate

ПРОЦЕДУРА ХРАНЕНИЯ

BEGIN
declare @today datetime
declare @StartDate date
declare @EndDate date
--declare @Test date
set @today=getdate()
set @StartDate = convert(varchar(10),dateadd(mm,-25,dateadd(dd,-(day(@today)-1),@today)),23)
set @EndDate = convert(varchar(10),dateadd(mm,-1,dateadd(dd,-1,dateadd(dd,-(day(@today)-1),@today))),23)
DROP TABLE IF EXISTS mySchema.claims_table
SELECT * FROM mySchema.claims_view
END

Не думаю, что я использую правильные методы для достижения того, что мне нужно, может кто-нибудь предложить альтернативные способы создания моего стола?

...