title: Create a temp table in PL/SQL
body: <p>I'm working with an Oracle 10g database, and I want to extract a group of records from one table, and then use that for pulling records out of a bunch of related tables.</p>
  
  <p>If this were T-SQL, I'd do it something like this:</p>
  
  <pre><code>CREATE TABLE #PatientIDs (
    pId int
  )
  
  INSERT INTO #PatientIDs
    select distinct pId from appointments
  
  SELECT * from Person WHERE Person.pId IN (select pId from #PatientIDs)
  
  SELECT * from Allergies WHERE Allergies.pId IN (select pId from #PatientIDs)
  
  DROP TABLE #PatientIDs
  </code></pre>
  
  <p>However, all the helpful pages I look at make this look like a lot more work than it could possibly be, so I think I must be missing something obvious.</p>
  
  <p>(BTW, instead of running this as one script, I'll probably open a session in Oracle SQL Developer, create the temp table, and then run each query off it, exporting them to CSV as I go along. Will that work?)</p>