Oracle query designed to search a group of tables for a specific number or varchar. I am not good with queries yet. Can you see what is wrong with it.

Oracle Database Trying to search through a series of tables for a number or varchar
 (eventually want to search for string or text as well later on)

The following code runs without errors but does not return results. This code was originally designed to try to search through a database for a set number of tables listed. in the select below. The value "14461.32" is in the table Job_Expenses.Total_Cost. Below this code is an image that proves the data is there I am just trying to figure out why it is not getting the results I thought it would. It seems to work here on SQL Fiddle Test Site.

Select * From  JAS.JOBS;
Select * From  JAS.JOB_CONTACTS;
Select * From  JAS.JOB_DETAILS;
Select * From  JAS.JOB_DETAIL_REC_TYPES;
Select * From  JAS.JOB_EXPENSES;
SELECT 'SELECT '''|| main.TABLE_NAME ||''' AS Source, t.* FROM '
      || main.TABLE_NAME
      ||' t WHERE '
      || LISTAGG(
            CASE WHEN main.DATA_TYPE = 'VARCHAR2' AND val.IsValueNumeric = 0 THEN main.COLUMN_NAME || ' = ''' || val.SearchValue || ''''
               WHEN main.DATA_TYPE = 'NUMBER' AND val.IsValueNumeric = 1 THEN main.COLUMN_NAME || ' = ' || val.SearchValue  
               ELSE ''
            END
          , ' OR ' ) WITHIN GROUP (ORDER BY TABLE_NAME)
      || ';'
      AS StatementsToRun
FROM   USER_TAB_COLUMNS main
       CROSS JOIN
       (
           SELECT '14461.32The code here shows the record but the above does not help me find the record in the group of tables.' AS SearchValue
                 , CASE WHEN trim(TRANSLATE( '14461.32' , '0123456789-,.' , ' ')) IS NULL
                        THEN 1
                        ELSE 0
                   END AS IsValueNumeric
           FROM dual
       ) val
WHERE main.TABLE_NAME IN ( 'JAS.JOBS, JAS.JOB_CONTACTS  , JAS.JOB_DETAILS, JAS.JOB_DETAIL_REC_TYPES, JAS.JOB_EXPENSES,' )
AND   main.DATA_TYPE IN ( 'VARCHAR2','NUMBER' )
GROUP BY main.TABLE_NAME;

The query directly above simply seems to pull a small sampling of records from the 5 tables above. Nothing more.

Here is proof the record is there but the above code just does not seem to find it. See image attached.
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

slightwv (䄆 Netminder) Commented:
Searching a list of tables for a specific value in any column isn't going to be quick but there are examples out there.  I'm not sure where you got your example but I'm not fully understanding what it is attempting.

Are you open to alternatives?

See if this helps:
https://www.experts-exchange.com/questions/29077933/Query-all-tables-of-Oracle-database-return-all-records-that-hold-string.html#a42433223

or this one:
https://www.experts-exchange.com/questions/28069987/identifying-columns-in-all-the-tables-with-a-specific-value.html#a39001854
0
_agx_Commented:
> I'm not sure where you got your example but I'm not fully understanding what it is attempting.

@slightwv (䄆 Netminder)  - It's my clumsy attempt to modify this quick and dirty query, which builds SELECT statements (to be executed separately) that will search all columns for a specific string like 'ABC'.


The issue was the original version didn't handle comparisons with numeric columns correctly.  AFAIK, 11G doesn't have an IsNumeric function.  This last query is my attempt imperfect attempt to differentiate strings from numbers and construct the correct statement (strings are quoted, numbers are not) via this case

     CASE
     WHEN It's a VARCHAR2 column AND the "value to search for" is a string  
                        THEN enclose the search value in quotes
     WHEN It's a NUMERIC column AND the "value to search for" is a number
                        THEN don't enclose the search value in quotes
     ELSE skip it...

I'm not an Oracle person, so I'm sure there's a slightly more elegant way of handling it.  I'm totally open to better ideas.
0
slightwv (䄆 Netminder) Commented:
It's my clumsy attempt
...
I'm not an Oracle person, so I'm sure there's a slightly more elegant way of handling it.  I'm totally open to better ideas.

@agx,  I'm now more confused.  Are you also the asker?

>>The issue was the original version didn't handle comparisons with numeric columns correctly

In what way?  Oracle will do an explicit data type conversion for you.  Granted it isn't normally the preferred method but it should work.

What didn't work?
0
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

_agx_Commented:
@slightwv (䄆 Netminder,

No, assisted the asker in creating that query on another thread. The original version is easier decipher

https://www.experts-exchange.com/questions/29092107/Querying-for-Records-in-an-Oracle-Database-Open-to-suggestions-ideas-or-commands-that-might-be-helpful.html#a42518033

>>What didn't work?
I don't remember the exact issue. I'm on my phone, but will see if I can reproduce it when I get home.
0
slightwv (䄆 Netminder) Commented:
@Fletcher,

If this is a duplicate then you should probably have deleted the previous question if there was no answer.  The links I provided here are basically the same that I posted in your other question.


@agx,
Personally, I wouldn't use your method of getting SQL to generate SQL that you then have to turn around and execute.  There are other options in that question that don't require that approach.
0
awking00Information Technology SpecialistCommented:
>>See image attached<<
I don't see the attachment.
0
_agx_Commented:
@slightwv (䄆 Netminder)  - Nice, way beyond my Oracle skills....  

@Fletcher Burdine - Do you need to return the actual data rows from the tables, ie "SELECT * FROM tableX  ..." where one or more of the columns contains the search value OR would a simple list of table + column names + number of matches suffice?
0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
One thing that confuses me about this site is that you might get someone who knows something or it appears they know some solution. Maybe it is that the solution provider has knowledge of some work around or a cool tool  or an abnormal way to the answer. So I get the impression at times that there is a solution that fits my question. It is only finding the person that knows something others may not. So I will have to apologize if I have upset anyone here. It is that dilemma that confuses me occasionally. I am not beyond doing the work. I grew up on a farm shoveling manure and taking care of animals a long time. SO if it is constantly querying one table at a time to find a single value. (Like a specific string or number) I can do that. What had me hooked was it sounded like there was a way you could search "multiple tables for a specific field type for a specific record." I thought maybe I had come across the person who knew that solution.

Currently there is a list of 905 tables. There are records that should be in the tables I have selected but for some reason they are not. As a Crystal Reports Business Objects Enterprise for 20 years. I thought this could be found. So far no sir. I have some other work with TOAD, PLSQL and WEBI Reporting. Now Tableau Software tools.

I was thinking that this was not so challenging since I had seen the SQL Grep tool (now defunct....offline) That could search through the data without the "Guessing" I was having to do ad nauseam. The other problem is the record may not even be in the database which means a lot of work that may go for no result. Possibly the initial import from the old system my not have worked. So I was looking for something that would not kill my time and produce some results.

If the tool is not out there I hope it is developed else my own project I am working one will create a tool built with Python and Java.

_agx_
All I need is the location of the record. What table and field it is in.

If the record is the number 14461.32 then if it is in the table and field named {Job_Expense.Total_Cost} then I need to know those two things so I can build a report around that field as it belongs in a report....? Unfortunately, I do not have time to look through 905 tables with as many as 200 fields per table. I have to have a faster solution if it is possible? It sounded like there was? Am I wrong?

If my only option is to search one table at a time then that is going to be tough. If I could get search even 10 tables at a time that would be searching 90 batches of table names. Better than 905 searches individually.
0
_agx_Commented:
>> location of the record. What table and field it is in

If that's the goal, then sorry ... we all misunderstood the question on the 1st thread. There's always different ways to do "something", and the optimal approach depends on how the "something" will be used.  The "how" wasn't totally clear.  I think the general consensus was you  wanted a quick, ad-hoc query to search multiple/columns for a specific value and - return the data from those tables.  Though there's other ways to do it, the 1st query would've been fine for that purpose.  However, it's not the right query to just return table and column names only,  Since that's what you need, I'd say use @slightwv (䄆 Netminder's suggestions.  I'm not familiar with that technique, so I'll leave the explanations to him.

Anyway, apologies if my chiming in confused things.  I'd hoped collaborating and clarifying things would help get you a better answer. Sorry that didn't happen...
0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
Data in rows would have been just fine if it shows the record in at least one of the fields as described below. (the 16308.00) What I am getting whether I use the quotes around the value or not. I get the same exact result set. None of which have the value 16308.00?

I used the code below and got the exact same results both times. One with quotes around the number and one without. The value I was looking for was "16308.00"
Select * From  JAS.JOBS;
Select * From  JAS.JOB_CONTACTS;
Select * From  JAS.JOB_DETAILS;
Select * From  JAS.JOB_DETAIL_REC_TYPES;
Select * From  JAS.JOB_EXPENSES;
SELECT 'SELECT '''|| main.TABLE_NAME ||''' AS Source, t.* FROM '
      || main.TABLE_NAME
      ||' t WHERE '
      || LISTAGG(
            CASE WHEN main.DATA_TYPE = 'VARCHAR2' AND val.IsValueNumeric = 0 THEN main.COLUMN_NAME || ' = ''' || val.SearchValue || ''''
               WHEN main.DATA_TYPE = 'NUMBER' AND val.IsValueNumeric = 1 THEN main.COLUMN_NAME || ' = ' || val.SearchValue  
               ELSE ''
            END
          , ' OR ' ) WITHIN GROUP (ORDER BY TABLE_NAME)
      || ';'
      AS StatementsToRun
FROM   USER_TAB_COLUMNS main
       CROSS JOIN
       (
           SELECT 16308.00 AS SearchValue
                 , CASE WHEN trim(TRANSLATE( 16308.00 , '0123456789-,.' , ' ')) IS NULL
                        THEN 1
                        ELSE 0
                   END AS IsValueNumeric
           FROM dual
       ) val
WHERE main.TABLE_NAME IN ( 'JAS.JOBS, JAS.JOB_CONTACTS  , JAS.JOB_DETAILS, JAS.JOB_DETAIL_REC_TYPES, JAS.JOB_EXPENSES,' )
AND   main.DATA_TYPE IN ( 'VARCHAR2','NUMBER' )
GROUP BY main.TABLE_NAME;


I should have responded with something like data is fine as long as it helps me identify the table and field name the value is in....? Does not have to print those out specifically line Table Name & Field Name. That is how the product I described did it. SQL Grep. I did not know if that was something that could be coded.
0
slightwv (䄆 Netminder) Commented:
>>we all misunderstood

I believe I knew what was being asked.

I will go back to what I posted in the original question and again in this one.  I don't know how SQL Grep did it but I don't know of any other way than to have a query look in every column of every table.  It isn't going to be fast.
0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
I do not know how that guy did it either but I will tell you it actually was very fast I thought. The data I am working with now. Could have easily found the records I am looking for in under 15 minutes. In the grand scheme of things when you are trying to reverse engineer something for a client who does not know the tables in the new product which were imported originally now new records are created daily. The 15 minutes was awesome since NO ONE knew where the GUI interface mates up with the tables. I wish all products out there could show in the GUI where the input windows and lookup tables connect back to the database with a {table_name.field_name} reference. Unfortunately, canned reports are not always what the client needs. Custom reports are often needed.
0
slightwv (䄆 Netminder) Commented:
Fast is relative based on the size of the database.  I can probably do it under 15 minutes with my small dev database at home.  My 1 TB database at work, no way.
0
slightwv (䄆 Netminder) Commented:
>>The value I was looking for was "16308.00"

The problem is Oracle doesn't store insignificant digits so it stores that internally as 16308.  As long as you know that, it is pretty easy to find.

Here is a modified script from the links above.  Notice my main where clause.  I'm only looking in tables that start with 'TAB'.  I didn't want to search everything for this example.  I also don't have a check in for specific data types.

If uses a SQLPLUS substitution variable to it will prompt you to enter the value to search for.  Remember, you need to enter  16308 not 16308.00.

/*
drop table tab1 purge;
drop table tab2 purge;
drop table tab3 purge;

create table tab1(t1_col1 varchar2(10), t1_col2 number);
create table tab2(t2_col1 varchar2(10), t2_col2 number);
create table tab3(t1_col1 varchar2(10), t3_col2 number);

insert into tab1 values('Hello',12345);
insert into tab2 values('World',16308);
insert into tab3 values('Fred',65432);
commit;
*/


--find Hello
select table_name,column_name from (
	select table_name,
		column_name,
		EXTRACTVALUE(
			DBMS_XMLGEN.getxmltype(
				'select count(*) X from ' || table_name || ' where to_char(' || column_name || ') = ''&val_to_find'' and rownum=1'
			),
			'/ROWSET/ROW/X'
		) count
	from user_tab_cols
	where table_name like 'TAB%'
	order by table_name, column_name
)
where count=1
/

Open in new window


Test runs (I saved it as q.sql so to execute my script:  @q.sql
SQL> @q
Enter value for val_to_find: 16308
old   6:                                'select count(*) X from ' || table_name || ' where to_char(' || column
_name || ') = ''&val_to_find'' and rownum=1'
new   6:                                'select count(*) X from ' || table_name || ' where to_char(' || column
_name || ') = ''16308'' and rownum=1'

TABLE_NAME COLUMN_NAM
---------- ----------
TAB2       T2_COL2

SQL> @q
Enter value for val_to_find: Hello
old   6:                                'select count(*) X from ' || table_name || ' where to_char(' || column
_name || ') = ''&val_to_find'' and rownum=1'
new   6:                                'select count(*) X from ' || table_name || ' where to_char(' || column
_name || ') = ''Hello'' and rownum=1'

TABLE_NAME COLUMN_NAM
---------- ----------
TAB1       T1_COL1

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
I am starting to feel a bit on the dumb side here. I have played around with the SQL and can see the code run without errors but for some unknown reason the results show all records returning but in the Select Select Tab section in PL SQL the Table & Field name column shows no result.

No results for table or field
I think the code is correct. I have tried the numbers over and over different ways but still no result?
ProjectSQL.png
0
slightwv (䄆 Netminder) Commented:
Oracle doesn't store insignificant digits.  The ".25" isn't insignificant.

Search for 3142983.25

SQL> insert into tab3 values('Barney',00000000000000000003142983.250000000000000000);

1 row created.

SQL> commit;

Commit complete.

SQL> @q
Enter value for val_to_find: 3142983.25
old   6:                                'select count(*) X from ' || table_name || ' where to_char(' || colum
_name || ') = ''&val_to_find'' and rownum=1'
new   6:                                'select count(*) X from ' || table_name || ' where to_char(' || colum
_name || ') = ''3142983.25'' and rownum=1'

TABLE_NAME COLUMN_NAM
---------- ----------
TAB3       T3_COL2

Open in new window

0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
I have a couple of questions.

SQL> @q            
Do I need to insert either line above or line just below into the MY SQL. Reading comment above 42553650 it almost sounds like I need to
Enter value for val_to_find: 3142983.25         If this line "Enter value for val_to_find: 3142983.25 " is included does simply go above the "NEW  6:" line currently is? Exactly as shown above?
old   6:                                'select count(*) X from ' || table_name || ' where to_char(' || colum
_name || ') = ''&val_to_find'' and rownum=1'      This is simply to change the old line to replace with the New...?
new   6:                                'select count(*) X from ' || table_name || ' where to_char(' || colum
_name || ') = ''3142983.25'' and rownum=1'

TABLE_NAME COLUMN_NAM
---------- ----------
TAB3       T3_COL2
0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
Okay I see one place at least where I messed up. the 'TAB%' where it looked for a table I left that out.

In my case I was looking for ......  where table_name like 'JOB%'................That should be correct? Right.

Well I ran this code below thinking I had it all correct. Still no results returned...?


Select * From  JAS.JOBS;
Select * From  JAS.JOB_CONTACTS;
Select * From  JAS.JOB_DETAILS;
Select * From  JAS.JOB_DETAIL_REC_TYPES;
Select * From  JAS.JOB_EXPENSES;


select table_name,column_name from (
  select table_name,
    column_name,
    EXTRACTVALUE(
      DBMS_XMLGEN.getxmltype(
        'select count(*) X from ' || table_name || ' where to_char(' || column_name || ') = ''3142983.25'' and rownum=1'
      ),
      '/ROWSET/ROW/X'
    ) count
  from user_tab_cols
  where table_name like 'JOB%'
  order by table_name, column_name
)
where count=1
/
0
slightwv (䄆 Netminder) Commented:
>>I have a couple of questions.

Sorry but I don't understand.

The line 6 is the sqlplus prompts from my original example.  I simply added to my test case.

Remember in your other question I mentioned how bad pictures are?

I cannot copy and paste a fix to the image you posted since I cannot edit it.

In the image you attached, you only searched for the WHOLE number.

... || column_name || ') = ''3142983'' and ...

You need to add the .25 that is the actual value.

Make your SQL:
... || column_name || ') = ''3142983.25'' and ...
0
slightwv (䄆 Netminder) Commented:
We cross posted.

>> Still no results returned...?

Are you logged into the database as the JAS user?

If not, you cannot go against user_tab_columns.

Try this:
select table_name,column_name from (
  select table_name,
    column_name,
    EXTRACTVALUE(
      DBMS_XMLGEN.getxmltype(
        'select count(*) X from ' || table_name || ' where to_char(' || column_name || ') = ''3142983.25'' and rownum=1'
      ),
      '/ROWSET/ROW/X'
    ) count
  from all_tab_cols
  where owner='JAS' and table_name like 'JOB%'
  order by table_name, column_name
)
where count=1
/ 

Open in new window

0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
I can run other simpler queries on the machine against those same tables.

I get this error when running the code at the OWNER ?

Yes Logged in as JAS user
OracleSQLError.png
0
slightwv (䄆 Netminder) Commented:
Look at the view I used.  USER_TAB_COLS doens't have an owner.  In my last "Try this", I changed it to ALL_TAB_COLS.

Anyway, if you are logged in as JAS, it doesn't matter.

I can only post test cases based on what you tell me.  If you can provide me a test vase, NOT AN IMAGE, that doesn't work, I'll run it on my side.
0
slightwv (䄆 Netminder) Commented:
Something else:  Post the results of:
desc jas.job_details
0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
Seems to have worked.....Alright. I just wished I knew more. Bought a training class to help me.

Netminder...I do not know if that is your name or you are from Slight, WV that is West Virginia. An actual town in the State of West Virginia.

I cannot tell you how much I appreciate you and agx for all your help. This is great. I will be posting other questions on how I can make this more efficient like how to create a parameter type object to quickly change variables without having to actually open the SQL page but rather be prompted. (I only know parameter the term from Crystal Reports & Tableau) which both you and agx can call on me anytime and you will have my attention for anything I can help you with. I am not kidding when I say I am grateful.

Finally back to the post 42553650

"If uses a SQLPLUS substitution variable to it will prompt you to enter the value to search for.  Remember, you need to enter  16308 not 16308.00."

You said here I think that "IT uses a SQLPLUS Substitution variable............Is that like a parameter in Crystal Reports where it passes a value through to the code from a user prompt? So I could shovel  lots of values in as to quickly search this data. If so I am definitely going to use that...! Thanks again.
0
slightwv (䄆 Netminder) Commented:
Netminder is the old Senior Site Administrator.  The 䄆 in my screen name is to honor him and is the Han character: https://en.wiktionary.org/wiki/%E4%84%86

Yes, the WV is West Virginia. About a 4 hour drive away from Bristol.  The rest of my name isn't area related.

>>I just wished I knew more. Bought a training class to help me

We were ALL beginners at some time.

>>You said here I think that "IT uses a SQLPLUS Substitution variable

Yes.  Cannot say how it relates to Crystal.  Here is the docs on it:
https://docs.oracle.com/database/121/SQPUG/ch_five.htm#SQPUG437

>>how I can make this more efficient like how to create a parameter type object to quickly change variables without having to actually open the SQL page but rather be prompted

Not sure what you mean but making is a function would be pretty simple.  Depending on what you really want as output and how you plan on using it, it might be a little more complicated.

Maybe even a pipelined function.

An example of that.


Setup:
/*
drop table tab1 purge;
drop table tab2 purge;
drop table tab3 purge;

create table tab1(t1_col1 varchar2(10), t1_col2 number);
create table tab2(t2_col1 varchar2(10), t2_col2 number);
create table tab3(t1_col1 varchar2(10), t3_col2 number);

insert into tab1 values('Hello',12345);
insert into tab2 values('World',16308);
insert into tab3 values('Fred',65432);

insert into tab3 values('Barney',3142983.25);
commit;
*/

drop type sql_grep_tab;
drop type sql_grep_result; 

create type sql_grep_result as object(table_name varchar2(30), column_name varchar2(30)); 
/
show errors

create type sql_grep_tab as table of sql_grep_result;
/
show errors

create or replace function sql_grep(p_input in varchar2) return sql_grep_tab pipelined
is
begin

	for i in (
		select table_name,column_name from (
			select table_name,
				column_name,
			EXTRACTVALUE(
					DBMS_XMLGEN.getxmltype(
							'select count(*) X from ' || table_name || ' where to_char(' || column_name || ') = ''' || p_input || ''' and rownum=1'
					),
					'/ROWSET/ROW/X'
				) count
			from user_tab_cols
			where table_name like 'TAB%'
			order by table_name, column_name
		)
		where count=1
	) loop
		pipe row(sql_grep_result(i.table_name,i.column_name));

	end loop;
end;
/

show errors

select * from table(sql_grep('Hello'));
select * from table(sql_grep('3142983.25'));
select * from table(sql_grep('16308'));

Open in new window


Results:
SQL> select * from table(sql_grep('Hello'));

TABLE_NAME COLUMN_NAM
---------- ----------
TAB1       T1_COL1

SQL> select * from table(sql_grep('3142983.25'));

TABLE_NAME COLUMN_NAM
---------- ----------
TAB3       T3_COL2

SQL> select * from table(sql_grep('16308'));

TABLE_NAME COLUMN_NAM
---------- ----------
TAB2       T2_COL2

SQL>

Open in new window

0
slightwv (䄆 Netminder) Commented:
I wanted to add that the above is a REALLY QUICK test to show what is possible.

Using string concatenation in SQL has a horrible flaw:  SQL Injection.

For example using the example above this is bad:
select * from table(sql_grep('x'' or ''1''=''1'));

It pretty much returns everything.

If I can get time later or another Expert wants to jump in and rewrite it using Bind Variables, it would be much better.
0
RUA Volunteer2?Tableau Trainer & Consultant Sales Exec.Author Commented:
I feel like I am not deserving of all this help.....but by golly I will not turn it down. Thanks again.

I think I might have something that might interest EE and that is the progression of someone like me learning Python and SQL to make a tool like SQL Grep to give it to the site as a gift for the products section above. It would be like a novice coming to the site learning, producing and delivering a usable result from the talents of all the experts involved to demonstrate the power of this site. Not that everybody that uses it does not already know. More like a good case study of what is possible.place is great to make friends and actually realize with a little help in this world just about anything is possible. It is funny every time an expert gives me a new term, function or process. I get curious and look it up. This site encourages learning and helps those get "unstuck from the muck." When you are hopelessly lost EE gives you the edge. With guys like you out there. We get to take a leap forward amidst all our baby steps. EE provides that daily. If the tool I want to build above could be used as a case study or something to show users what is possible. I am not saying, one question one answer. A series of questions and answers that displays the true progression from idea and concept to code and going live. Give them a tool they can use....? What do you think. EE probably has a 1k examples like that for all I really know. I have not payed attention to that honestly.
1
slightwv (䄆 Netminder) Commented:
Interesting concept:  Member provided tools.  Not sure I've sen that one pitched before.  I'll make sure "The Powers" see that post!

You could always make it an Article that ends up with a working tool?
1
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
SQL

From novice to tech pro — start learning today.