Skip to content

BI Practice

A journey of a thousand miles begins with the first step.

  • General
  • SAS
  • Tableau
  • PowerBI
  • Statistics
  • VBA
  • Data

Tag: dictionary.tables

SAS: Create Meta Data from ODBC or ORACLE Data Engine

Metadata have the following table level summary information in the &prefix._tables.

  • libname: library name
  • memname: Member Name (table name)
  • maxlabel: longest label
  • maxvar: longest variable name
  • nobs: Number of Physical Observations ( for remote access, this field is null)
  • nvar: Number of Variables
  • num_character: number of Character Variables
  • num_nmeric: number of Numeric Variables

Metadata also contains the following variable level information in the &prefix._var.

  • libname: library name
  • memname: Member Name (table name)
  • name: Column Name (variable name)
  • type: Column Type (variable type: char, num)
  • length: Column Length (variable length)
  • npos: Column Position (variable position)
  • varnum: Column Number in Table (variable number in table)
  • label: Column Label (variable label)
  • format: Column Format
  • informat: Column Informat
  1. Oracle engine
libname ORACLEMETA oracle user=xxxxx password="xxxxx" path=parmp schema=schemaname;

/*** local library ***/
libname loc "X:\SAS\Data Source\Dictionary";

%macro dic(prefix=, lib=);
PROC SQL;
CREATE TABLE &prefix._tables AS
SELECT *
FROM dictionary.tables as one
where one.libname = "&lib." ;
QUIT;
data loc.&prefix._tables;
set &prefix._tables;
run;
proc sql;
create table varlist as
select distinct memname from &prefix._tables;
quit;
%mend dic;
%dic (prefix = SCHEMANAME, lib = ORACLEMETA);

%let varlist =;

data null;
set varlist;
call symput('varlist', trim(resolve('&varlist'))||' '||trim(memname));
run;

%put &varlist.;

%macro dic(prefix=, lib=, table=);
proc datasets library=work noprint;
delete &prefix.var;
quit;
%let i=1;
%do %while (%scan(&table., &i, ' ') ne );
%let dsn=%scan(&table., &i, ' ');
PROC SQL;
CREATE TABLE &prefix.&i. AS
SELECT *
FROM dictionary.columns as one
where one.libname = "&lib." and one.memname= "&dsn." ;
QUIT;
proc append base = &prefix.var data = &prefix.&i.;
run;
proc datasets library=work noprint;
delete &&prefix._&i.;
quit;
%let i = %eval (&i +1);
%end;
data loc.&prefix._var;
set &prefix._var;
run;
%mend dic;
%dic (prefix=SCHEMANAME, lib = ORACLEMETA, table = &varlist.);
  1. ODBC
  • /*** Set up ODBC engine to read SQL Server database in SAS ***/
    libname ODBCMETA odbc dsn=dsnname user=xxxx pwd=xxxxxx schema = dbo;
  • /*** Set up ODBC engine to read MySQL database in SAS ***/
    libname ODBCMETA odbc dsn="dsnname" user=xxxxxx pwd=xxxxxx /*cursor_type=dynamic*/;
Author myyorku2002Posted on February 2, 2018Categories Oracle, SASTags data null, dictionary.columns, dictionary.tables, libname, memname, meta data, varlist

%do %length %let %macro %put 95% confidence Access activex census datalines data null delimiter error Excel export filename first first last format infile input Join lag merge meta-analysis ODBC ods ods tagsets.excelxp Output percentage proc append Proc format Proc Freq Proc sgplot proc sort Proc SQL proc summary proc tabulate retain study and control group symput Systematic Review Variable varlist VBA

Recent Posts

  • Diving Deep into the Gemini CLI Architecture: A Source Code Analysis
  • Unleash the Power of SVG: Sharper Images, Smoother Performance! 🚀
  • PowerBI: Remove Semantic Model
  • SAS Enterprise Guide Error
  • Pass value of Marco Variable to Remote Session

Archives

  • July 2025
  • December 2024
  • November 2024
  • April 2024
  • September 2023
  • August 2023
  • April 2023
  • October 2022
  • September 2021
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019
  • April 2019
  • March 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • August 2018
  • July 2018
  • June 2018
  • April 2018
  • March 2018
  • February 2018
  • December 2017
  • November 2017
  • September 2017
  • August 2017
  • July 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • January 2016
  • March 2015
  • February 2015

Categories

  • AI Generated
  • Data
  • Data Science
  • Excel
  • General
  • github
  • Institutional Research
  • Oracle
  • PowerBI
  • R
  • Raspberry Pi
  • SAS
  • SAS SQL
  • Statistics
  • Tableau
  • Uncategorized
  • VBA
  • General
  • SAS
  • Tableau
  • PowerBI
  • Statistics
  • VBA
  • Data
BI Practice Proudly powered by WordPress