Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: PL/SQL !
"Jerry Metz" <jmetz1_at_ix.netcom.com> wrote in message
news:3B82CEB5.7AE4C340_at_ix.netcom.com...
> If I read your code correctly (and it's certainly possible that I'm not
> with the day that I've had today!), your function will return FALSE even if
> the table exists but has no rows in it.
I don't think so (keep reading...)
> > FUNCTION sp_tableexists( i_s_tablename IN VARCHAR2) RETURN BOOLEAN IS
> >
> > CURSOR cq_usertab (i_s_tablename VARCHAR2) IS
> > SELECT table_name FROM user_tables
> > WHERE table_name = i_s_tablename;
> >
> > l_r_tablerow cq_usertab%rowtype;
> >
> > BEGIN
> > OPEN cq_usertab (i_s_tablename);
> > FETCH cq_usertab INTO l_r_tablerow;
> > IF cq_usertab%notfound THEN
> > CLOSE cq_usertab;
> > RETURN FALSE;
> > ELSE
> > CLOSE cq_usertab;
> > RETURN TRUE;
> > END IF;
> > END sp_tableexists;
Look again. The cursor hits user_tables and looks for the table's existence in the data dictionary. It will be %FOUND if it's there and %NOTFOUND if it's not there. Doesn't have anything to do with the table existing and the #of rows in it.
-Matt Received on Fri Aug 24 2001 - 20:37:51 CDT