2014-04-21 5 views
1

Я пытаюсь создать набор данных, используя параметр Dataline, на основе данных, которые вводит пользователь. Есть ли способ динамически добавлять значения в Dataline в хранимом процессе? Если не так, как я могу это сделать?Как добавить элементы в datalines динамически

EDIT: Я получаю данные от пользователя в виде массива чисел. Я хочу добавить еще несколько полей для формирования моего набора данных. Короче говоря, набор данных, который я пытаюсь создать, представляет собой комбинацию элементов массива от пользователя и еще несколько данных на основе этих входных чисел.

входы пользователей: 1234, 2345, 3456

Dataset: номер | текст | id
1234 | «Что-то 1» | 1
2345 | «Что-то 2» | 2
3456 | «Что-то 3» | 3

ответ

0

Datalines/cards не должны использоваться в какой-либо производственной системе. Среди прочего, они являются незаконными в% include, который часто используется в производственных системах.

Я считаю, что по умолчанию в хранимой процедуре возвращаются макропеременные (на основе name, заданных для поля в форме ввода). Либо напрямую назначьте это переменной набора данных, либо если вы хотите много раз анализировать текст, напишите макрокоманду в текстовый файл и прочитайте ее. Дополнительная информация для правильного способа обработки этого для вашего случая может быть доступный с дополнительной информацией в вопросе.

Учитывая редактирует, и если вы получите значение 1234, 2345, 3456 в макропеременной &number, вы можете сделать что-то вроде этого:

data want; 
_numvar = "&number."; 
do _t = 1 to countc(_numvar,",")+1; 
    number = scan(_numvar,_t,","); 
    text = catx(" ","Something",substr(number,1,1); 
    id = input(substr(number,1,1)); 
    output; 
    keep number text id; 
end; 
run; 

Я не знаю, как вы строить text и id поэтому я просто что-то там сделал.

+0

Отредактировано решение вопроса для лучшего понимания –

+0

Постараюсь в этом направлении. Только одна маленькая вещь, & number - это массив, а не строка. Но я думаю, что смогу справиться с этим. Благодарю. –

+0

Это сработало. Спасибо чувак. –

Смежные вопросы