У меня есть код C # .NET с DataSet (System.Data.DataSet), содержащий одну таблицу данных, и я пытаюсь создать новую таблицу данных SAS на сервере SAS, а затем вставить в нее данные с помощью C #.
Сейчас я могу создать новую таблицу на сервере SAS, но я не уверен, как передавать данные.Я попытался использовать эту команду вставки (exportData - это DataSet):
"INSERT INTO SASUSER." + SAStableName + " SELECT * FROM " + exportData.Tables[0].TableName
Но он считает, что имя таблицы exportData должно быть именем библиотеки SAS.Все, что я получаю при поиске в Интернете, это примеры, которые извлекают данные только из SAS, что легко сделать с помощью типа команды TableDirect и метода заполнения OLEDB.Кажется, что не так просто полностью изменить процесс.
Примечание: я использую провайдер sas.IOMProvider в моей строке подключения.
Спасибо
РЕДАКТИРОВАТЬ: После всех поисков, которые я проводил, я полагаю, ты не сможешь этого сделать.Я попытался использовать параметризацию SQL, но поставщик SAS не поддерживает это.Наконец, я решил использовать простой цикл for для добавления значений, поскольку все мои исходные и целевые таблицы содержат одинаковые столбцы.Полупсевдокод:
DateTime time = (System.DateTime)exportTable.Rows[i]["time"];
object value = exportTable.Rows[i]["value"];
"INSERT INTO SASUSER." + tableName + " (time, value) VALUES (" + time.Ticks + " , " + value + ")"
У меня все еще проблемы с загрузкой дат в новую таблицу SAS с использованием предложения SQL INSERT (см. Код выше).Не уверен, как они должны быть отформатированы.Значения времени в исходной таблице (exportTable) являются объектами DateTime, поэтому приведение допустимо.