Nano Hash - криптовалюты, майнинг, программирование

Что означает % перед переменной в SAS pass-through?

что именно означает «%» в сквозном проходе? Я получил этот код от других, код работает нормально, но я просто не понимаю, зачем ставить % перед переменными. Если это %macro, я не вижу кода макроса в библиотеке. Любое объяснение поможет

proc sql;
  connect to odbc as d(datasrc=source);
  create table out as select * from connection to d
  (
    select
      t.id,t.rule_id,
      %application_id,
      t.date,
      %dpv, %dpvfn1, %dpvfn2, %dpvfn3,
      %AddressValid,%AddressValidMsg,%AddressType,    
      from &db2 t
      join &db3 dxs on t.id=dxs.id
 left join &db4 dxr on t.id=dxr.id
  );
  disconnect from d;
quit;
06.03.2012

  • К какому типу СУБД вы подключаетесь? 06.03.2012
  • Кроме того, если вы хотите дважды проверить, является ли это вызовом макроса, попробуйте что-то вроде %put %application_id; и посмотрите, записывает ли это что-нибудь в журнал. 06.03.2012
  • Наконец, вы можете проверить, загружаются ли другие макросы через функцию автовызова: %put %sysfunc(getoption(sasautos)); 06.03.2012
  • %put %track_id; cast( substr(cast(uncompress(id) as char(80000)), (locate('‹REFERENCEID›', cast(uncompress(id) as char(80000))) + 13), locate('‹/REFERENCEID› ',cast(uncompress(id) as char(80000))) - locate('‹REFERENCEID›' ,cast(uncompress(id) as char(80000))) - 13 ) as char(12)) as track_id .. ... Так это макрос, верно? 07.03.2012
  • Выше приведен результат, который я получил. Так это макрос? Где я могу найти исходный код? Я мало работаю с макросами. Я знаю, как создавать и использовать макросы с помощью %macroname(var=blah); . но это другое. Любое объяснение поможет, спасибо. 07.03.2012

Ответы:


1

%МАКРОС Х; ВАР %ИСПРАВИТЬ;

Приведенный выше пример является определением макроса.

В вашем вопросе все столбцы с% фактически выполняют вызовы макросов и заменяют вызовы значениями, присутствующими в их определениях макросов. Например, в вашем запросе выбора...

select
      t.id,t.rule_id,
      %application_id,
      t.date,
      %dpv, %dpvfn1, %dpvfn2, %dpvfn3,
      %AddressValid,%AddressValidMsg,%AddressType,    
      from &db2 t
      join &db3 dxs on t.id=dxs.id
 left join &db4 dxr on t.id=dxr.id

%application_id,%dpv, %dpvfn1, %dpvfn2, %dpvfn3,%AddressValid,%AddressValidMsg,%AddressType

Все эти вышеперечисленные вызовы макросов извлекут соответствующие определения и заменят их вместо выбранных вами столбцов...

07.03.2012
  • Спасибо, я думаю, должен быть лучший способ сделать это правильно? 07.03.2012
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..